在ASP.NET中的客户端中显示webservice soapexception响应

时间:2009-09-06 18:08:19

标签: asp.net web-services soap soap-client soapexception

我正在尝试创建一个测试Web服务并抛出一个SoapException。但是当我通过浏览器打开服务时,它显示内部服务器错误 - 500。

如果我尝试通过发送手动创建的SoapRequest(在stringbuilder中)手动使用它,我在Visual Studio本身的行“WebResponse response = req.GetResponse()”中得到相同的错误“Servererror - 500”

无论如何,我实际上可以看到“响应XML中的错误”。

3 个答案:

答案 0 :(得分:2)

听起来服务有问题,您需要在服务器端而不是客户端调试它。我得出这个结论是因为您的客户端代码和Web浏览器存在问题。

假设您使用.NET,您是否在服务器上启用了ASP.NET错误显示?有关信息,请参阅this article

<强>更新

所以你在服务器上抛出错误并希望在客户端上获取错误文本?服务器上的错误应该导致500错误消息,并且不太可能将任何XML返回给客户端。也许你可以将一些东西传递给SoapException构造函数?

你看过docs for SoapException了吗?他们有一些使用SoapException的Detail属性传递信息的例子。

答案 1 :(得分:0)

你可以在浏览器中看到asmx(假设你使用的是asmx),看看它是否正常工作?

答案 2 :(得分:-1)

冲浪了5-6个小时后终于明白了......这里是:

手动获取响应时,请使用以下命令:

try
{
    WebResponse response = req.GetResponse();                
    Stream str = response.GetResponseStream();
    StreamReader rdr = new StreamReader(str);
    Response.Write(rdr.ReadToEnd());          
    Response.End();
}
catch (WebException webEx)
{
    Stream str = webEx.Response.GetResponseStream();
    StreamReader rdr = new StreamReader(str); 
    Response.Write(rdr.ReadToEnd());          
    Response.End();
}