ServiceStack:如何处理错误?

2024-01-11

到目前为止,我使用 ServiceStack 取得了很好的效果,只是处理错误似乎很棘手。如果在消息序列化期间出现问题(例如,因为我忘记向消息添加默认构造函数),则客户端返回的所有消息都是服务器有内部错误且状态代码为 500 的消息。这HttpApplication.ErrorGlobal.asax 中的事件不起作用,因为它永远不会被击中。也不Application_Error。这不仅对于最终用户场景来说是不够的,而且还使得调试这些错误变得非常麻烦,因为找出问题所在的唯一方法是快速观察中的这个丑陋的表达式:

Encoding.Default.GetString( ((System.IO.MemoryStream)((SyncMemoryStream)((System.Net.HttpWebResponse)(((WebException)ex).Response)).ResponseStream))._buffer)

我想要的是捕获服务器端的所有错误(无论是 ServiceStack 的序列化,还是我的服务上的错误)并将所需的信息添加到Errors我所有消息类型都有的集合。


参见ServiceStack验证和错误处理 https://github.com/ServiceStack/ServiceStack/wiki/Validation有关 ServiceStack 中错误处理和验证的更多详细信息,请访问 wiki 页面。

目前无法使用自定义逻辑处理序列化异常(尽管我现在将其添加到 TODO 列表中:)。

如果您的 Response DTO 有响应状态属性(即或继承自 IHasResponseStatus),ServiceStack 应该自动序列化您的异常。

还可以让它序列化您的 StackTrace 集调试模式在 AppHost.Configure() onload 脚本中使用 SetConfig() 设置为 true。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ServiceStack:如何处理错误? 的相关文章

  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 很好地处理数据库约束错误

    再一次 它应该很简单 我的任务是在我们的应用程序的域对象中放置一个具有唯一约束的特定字段 这本身并不是一个很大的挑战 我刚刚做了以下事情 public class Location more fields Column unique tru
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • C/C++:头文件中的静态函数,是什么意思?

    我知道在源文件中声明静态函数意味着什么 我正在阅读一些代码 发现头文件中的静态函数可以在其他文件中调用 函数是在头文件中定义的吗 这样实际的代码就直接在函数中给出 如下所示 static int addTwo int x return x
  • 如何向带状图添加多个标记?

    我想知道如何在同一个带状图中获得多个标记 tips sns load dataset tips coldict Sun red Thur blue Sat yellow Fri green markdict Sun x Thur o Sat
  • Android的Activity.runOnUiThread不是静态的,那么我该如何使用它呢?

    例如 如果我有一个线程正在执行昂贵的操作 并且我想从该线程在 Main 活动 类中触发 runOnUiThread 显然我不应该创建我的活动类 主要 的实例 所以如果我尝试 Main runOnUiThread mRunnable 从我的线
  • ActiveRecord 使用 JSON 而不是 YAML 进行序列化

    我有一个使用序列化列的模型 class Form lt ActiveRecord Base serialize options Hash end 有没有办法让序列化使用 JSON 而不是 YAML 在 Rails 3 1 中你可以 clas
  • 每次基于 Selenium 的自动化测试后我应该退出浏览器吗?

    我试图使我的 selenium 测试尽可能原子且相互独立 因此我决定退出浏览器并在每次测试运行后创建一个新的 Webdriver 实例 这种方法对我来说更有意义 并且通过讨论这个问题的多个线程得到了强化 e G 这是对相关问题的回答 htt
  • 没有entityClass,并且由于entityClassSet中有多个,所以无法自动推导

    我正在尝试实现具有多个实体类的解决方案 但它失败并显示以下错误消息 没有配置entityClass null 并且因为有多个 EntityClassSet 类 com myspace wla JobA 类 com myspace wla J
  • 如何将我的 csv 文件转换为这个 scikit learn 数据集

    抱歉 如果我在这里没有使用正确的术语 我有一个包含我自己数据的 csv 文件 我首先需要将其转换为另一个format http scikit learn org stable modules generated sklearn datase
  • 如何在 LinearLayoutManager - RecyclerView 中重叠项目(如堆叠卡片)

    是否可以重叠 RecyclerView 中的项目 我正在尝试使用 LinearLayoutManager 我的要求与 LinearLayoutManager 中的相同 我只需要从上到下重叠内部的项目 如堆叠卡片 我见过一些变体 https
  • 了解 Spring 上下文初始化顺序

    我有一组复杂的 bean 以及它们之间的依赖关系 所有豆子都是 Service Repository or Controller带注释 我使用 PostConstruct注解 虽然存在一些循环依赖 但系统仍然由 Spring 正确初始化 然
  • Laravel 多个工人运行两次工作

    我使用 Laravel 5 6 将作业分派到队列 然后使用主管激活该队列上的 8 个工作线程 我原以为 Laravel 会知道不要运行同一个工作两次 但我惊讶地发现它确实如此 同样的工作由不止一名工人负责 因此奇怪的事情开始发生 问题是 一
  • 是否可以从托管 C++/CLI 项目正常运行非托管 C++?

    我正在将一个纯非托管 VC 9 项目包装在 C CLI 中 以便从 NET 应用程序中简单地使用它 我知道怎么写wrappers https stackoverflow com questions 15505992 can you use
  • FFImageLoading:如何添加身份验证?

    我正在尝试使用FF图像加载 https github com luberda molinet FFImageLoading wiki在我的 Xamarin iOS 和 Xamarin Android 应用程序中从 url 加载图像 所有网址
  • & 导致返回的文本在 URL 中被截断

    我从之前维护代码的人那里继承了几个php脚本 他没有编程经验 主要是尽其所能地将东西组合在一起 今天我不得不重写一个WordPress的插件文件 现在我不知道出了什么问题 我面临的问题是 当在属于表的 else 语句中显示返回的文件名时 我
  • 为什么子文件夹没有部署到 Google App Engine Nodejs 应用程序

    我正在开发 NodeJS Web 应用程序并尝试在 Google 云中运行它 仅根文件夹中的文件会使用以下命令部署到 Google App Enginegcloud app deploy命令 appengine express 示例应用程序
  • 解析错误:语法错误,意外的 T_ELSE,我不知道为什么

    这是我的 php 代码 h3 class info Upcoming Games h3 h3 class info Athletic Events h3 为什么我会收到此错误 我已经有了我需要的所有括号 不是吗 The and else 不
  • 如何在 iOS 11 中禁用“保存到文件”?

    我有一个 iOS 应用程序 它创建 PDF 并使用 UIActivityViewController 使用默认共享功能进行共享 我不得不阻止一些共享设施 如 Vimeo Facebook Twillio 等 并且文件不应存储在设备上 在新的
  • 带圆形窗口的局部最大值

    我正在尝试使用圆形内核计算矩阵上的局部最大值滤波器 输出应该是局部最大值的单元格 对于输入 数据 中的每个像素 我需要通过圆形窗口查看它是否是局部最大值 从而返回值 1 否则返回 0 我有这段代码 基于这里的答案 如何将圆盘形掩码应用于 n
  • JSP、MySQL 和 UTF-8

    我正在思考 通过表单输入的国际字符没有完全按照输入的方式存储 并且存储的数据也没有按照存储在数据库中的方式返回 如果我输入 anak mlek patlad 并单击表单上的 保存 我使用的页面会显示 anak mlek patlad 但数据
  • xunit 添加信息到输出

    有谁知道如何在运行 xUnit 测试时向输出控制台添加附加信息 我正在使用 testdriven net 但我不认为这就是我的答案所在 我正在使用一个IUseFixture 实际上IClassFixture从 2 0 开始 在测试之间维护数
  • ServiceStack:如何处理错误?

    到目前为止 我使用 ServiceStack 取得了很好的效果 只是处理错误似乎很棘手 如果在消息序列化期间出现问题 例如 因为我忘记向消息添加默认构造函数 则客户端返回的所有消息都是服务器有内部错误且状态代码为 500 的消息 这Http