jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从jquery调用wcf服务时获取异常消息大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我从 jquery ajax调用WCF服务.有时服务会抛出一些自定义错误,当它发生时,我需要获取错误的消息.在我的ajax调用错误函数中,我有以下代码

error: function(data) {
              alert("responseText: " + data.responseText);
            }

抛出错误时的responseText看起来像:

responseText: {"ExceptionDetail":{"HelpLink":null,"InnerException":null,"message":"Denied",......}}

我想从“ExceptionDetail”获取“消息”,但我不知道该怎么做.

我的WCF服务看起来像这样,测试它我只是抛出一个错误

[OperationContract]
[WebGet(ResponseFormat = Webmessageformat.Json)]
public String MyFunction(String id)
{
    throw new Exception("Denied");
}

如何获取错误消息?

解决方法

认情况下,WCF不会返回任何异常细节 – 这是设计所需的功能,以免向可能的攻击者泄露太多信息.

如果要启用详细的异常消息,可以通过在服务器端启用行为来执行此操作:

<system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="debugBehavior">
          <serviceDebug includeExceptionDetailInFaults="True" />
        </behavior>
      </serviceBehaviors>
    </behaviors>

    <services>
        <service name="Yourservice"
                 behaviorConfiguration="debugBehavior">
             .....
        </service>
    </services>

但即使是现在 – 您需要知道WCF应该可以互操作,因此客户端可能无法在.NET上运行 – >因此,您不能简单地抛弃异常 – 这是一个特定于.NET的构造.

您最好的选择是捕获服务器上的所有异常(使用例如IErrorHandler接口),并将其转换为SOAP错误 – 与.NET异常的可互操作等效.如果您知道另一端始终是.NET客户端,则可以轻松地将.NET异常转换为FaultException< T>其中T是您的.NET异常.

执行此操作时,您可以通过捕获FaultException< T>来捕获客户端上的异常,并且其.Detail属性应包含正常的.NET异常(如您所知)(并且包含带有异常消息的.message属性) .

大佬总结

以上是大佬教程为你收集整理的从jquery调用wcf服务时获取异常消息全部内容,希望文章能够帮你解决从jquery调用wcf服务时获取异常消息所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。