gpt4 book ai didi

json - WCF WebFaultException 异常详细信息

转载 作者:行者123 更新时间:2023-12-02 04:58:31 27 4
gpt4 key购买 nike

我正在创建一个以 JSON 格式返回数据的 WCF 服务。我试图弄清楚如何最好地处理异常,并且我正在尝试使用 WebFaultException 类在响应中返回异常详细消息,稍后可以将其输出给用户。

我正在尝试的这种方法的简单测试如下

WCF 服务方法

    <WebInvoke(Method:="POST",
ResponseFormat:=WebMessageFormat.Json)>
<OperationContract()>
Public Function Test() As Object
Throw New WebFaultException(Of String)("Message Details", Net.HttpStatusCode.NotFound)
End Function

根据我在搜索此问题的答案时发现的内容,您应该为服务提供一个将 includeExceptionDetailInFaults 设置为 true 的行为配置。

我的 Web.Config

<service name="WebserviceExceptionTest.Service" behaviorConfiguration="behavior">
<endpoint address="" behaviorConfiguration="WebserviceExceptionTest.ServiceAspNetAjaxBehavior"
binding="webHttpBinding" contract="WebserviceExceptionTest.Service" />
</service>

<serviceBehaviors>
<behavior name="behavior">
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>

不幸的是,这对我来说似乎没有用,响应仍然不包含异常详细信息,JSON 字符串如下所示:

{"ExceptionDetail":null,"ExceptionType":null,"Message":"Not Found","StackTrace":null}

有谁知道我做错了什么,还是我完全走错了路?谢谢!

编辑

我得到的响应总是“500 Internal server error”,尽管我希望它得到 400 not found。错误消息确实包含“无内容”。

最佳答案

将你的 automaticFormatSelectionEnabled 设置为 false,将 defaultOutgoingResponseFormat 设置为 Json(我相信它甚至会忽略 ResponseFormat:=WebMessageFormat.Json)

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" defaultOutgoingResponseFormat ="Json" />

http://msdn.microsoft.com/en-us/library/system.servicemodel.description.webhttpendpoint.automaticformatselectionenabled.aspx

关于json - WCF WebFaultException 异常详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com