gpt4 book ai didi

c# - 抛出 SoapException 不会返回有效的 SOAP 响应

转载 作者:太空狗 更新时间:2023-10-29 23:51:05 25 4
gpt4 key购买 nike

我正在处理一个旧网站。它正在调用 ASP.Net Web 服务(旧的 .asmx 文件)。每当 Web 服务中发生异常时,它都会抛出 SoapException。客户端捕获此异常但无法解析它。

我正在使用 FiddlerSOAP UI 查看 SOAP 请求和响应并阅读这篇文章 http://msdn.microsoft.com/en-us/library/aa480514.aspx我希望得到以下格式的响应:

<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Server was unable to process request. Something bad happened</faultstring>
<detail />

但是,我只收到以下响应:

HTTP/1.1 500 Internal Server Error
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 12 Jun 2014 05:27:14 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Length: 164
Connection: Close

System.Web.Services.Protocols.SoapException: Something bad happened
at WebService1.Service1.HelloWorld() in ...

我认为这是客户端无法处理异常的原因。

即使在示例 Hello World Web 服务中也会发生这种情况。

有什么问题吗?

更新:当我调用不抛出异常的网络服务方法时,我将收到以下格式的响应:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ords="http://mydomain.com/">
<soapenv:Header/>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>

这就是我抛出 SoapException 的方式:

[WebMethod]
public string HelloWorld()
{
throw new SoapException("Something bad happened", SoapException.ClientFaultCode);
//return "Hello World";
}

最佳答案

我在web服务web.config文件中发现了一些httpHandlers和modules根本没有用到。删除这些修复了问题,现在我在响应中得到了正确的 XML SOAP 错误。

关于c# - 抛出 SoapException 不会返回有效的 SOAP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24177262/

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