【问题标题】:Custom Exception Handling in ASP.NET webserviceASP.NET Web 服务中的自定义异常处理
【发布时间】:2012-01-01 00:58:36
【问题描述】:

我开发了一个asp.net 2.0 web service (.asmx),现在我的客户说

"没有可用的故障异常。它只包含请求和 回复。我们需要在处理异常情况的同时 调用网络服务,您能否更新故障时的 WSDL 异常并将更新的 WSDL 发回给我们以继续 客户端存根。

Webservice 响应应该有下面提到的错误代码 来自网络服务的失败案例如下所述:

            Error code:  Error Information
             002           Server Down
             003       Invalid Input Format

等等。 我不确定如何更新我的代码,以便在 asmx wsdl 文件中生成“故障异常”标签以及我应该如何抛出这样的异常。 请提供任何帮助/建议,或者如果您需要进一步解释,请告诉我。

【问题讨论】:

  • 我很高兴看到一个停机的服务器回复Server Down

标签: c# asp.net web-services exception wsdl


【解决方案1】:

您应该将带有异常信息的 FaultContract 属性添加到您的方法头

【讨论】:

【解决方案2】:

AFAIK,ASP.NET Web 服务 (asmx) 不支持自定义肥皂错误。另一方面,它是 considered as legacy technology(由 Microsoft 提供)- 在其中开发新服务毫无意义。

使用 WCF 服务(在所有方面都更灵活) - 请参阅 this simple tutorial 以开始使用 WCF。

关于您的问题,WCF 支持自定义肥皂故障(在 WCF 术语中称为故障合同) - 请参阅 this simple tutorial 以将故障合同添加到 WCF 服务。

【讨论】:

  • 不幸的是客户端服务器只支持 .net 2.0,这就是我必须使用 asmx 的原因。
  • @SaQiB,我唯一的建议是,也许您应该尝试教育并说服您的客户从 .NET 2.0 升级(主流支持于 2011 年 4 月结束)。此外,.NET 3.0 和 3.5 的运行时版本都保持在 2.0 相同 - 因此升级是完全没有风险的。本质上,3.5 中只有核心库的错误修复,除非您的代码利用这些错误,否则您将是安全的!
  • +1 供您发表评论。是的,我已经通知客户升级是必要的:-),直到我开始在 wcf 中开发此 Web 服务。如果我在此解决方案中遇到任何问题,我会回来
猜你喜欢
  • 1970-01-01
  • 2020-05-19
  • 1970-01-01
  • 2014-12-31
  • 2013-03-14
  • 2012-12-28
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
相关资源
最近更新 更多