【问题标题】:Custom exceptions with error codes in .NET Web Services to Client.NET Web 服务中带有错误代码的自定义异常到客户端
【发布时间】:2010-09-10 10:02:13
【问题描述】:

我正在尝试从 Web 服务中抛出自定义异常并将其捕获在客户端。我正在使用 JQuery 并获取 JSON 序列化异常,所以这是一个好的开始。然而问题是:

  • 堆栈跟踪被发送到我不想要的客户端。
  • 除了异常消息外,我还需要添加错误代码。

我尝试过创建一个自定义异常,但它在序列化时省略了错误代码。

【问题讨论】:

  • 什么样的网络服务? ASMX 还是 WCF?

标签: .net web-services exception


【解决方案1】:

要使用 SoapException 发回您自己的数据,您需要在 SoapException 对象上设置 Details 属性。抱歉,我面前没有我的源代码,但我相信您必须将详细信息作为字符串传递给 SoapException 对象。我对 SoapException 对象进行了子类化,将我想要的详细信息传递给它的构造函数。然后它调用 SoapException 构造函数,传递详细信息以及我总是希望返回的一些标准内容(它检查异常的 .Data 属性并将其添加到详细信息中)。它将所有内容都转换为 XML 以获取详细信息。在客户端,我检查错误详细信息中的 XML,然后创建一个新的 JavaScript 错误对象并将详细信息添加为属性,然后将其抛出。

所以将详细信息中的错误代码传递给 SoapException 构造函数。自定义异常属性被 SoapException 忽略。

要关闭堆栈跟踪,我相信你会摆弄 web.config。

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2017-04-06
    • 1970-01-01
    • 2023-03-19
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    相关资源
    最近更新 更多