我正在尝试创建一个测试Web服务并抛出一个SoapException。但是当我通过浏览器打开服务时,它显示内部服务器错误 - 500。
如果我尝试通过发送手动创建的SoapRequest(在stringbuilder中)手动使用它,我在Visual Studio本身的行“WebResponse response = req.GetResponse()
”中得到相同的错误“Servererror - 500”
无论如何,我实际上可以看到“响应XML中的错误”。
答案 0 :(得分:2)
听起来服务有问题,您需要在服务器端而不是客户端调试它。我得出这个结论是因为您的客户端代码和Web浏览器存在问题。
假设您使用.NET,您是否在服务器上启用了ASP.NET错误显示?有关信息,请参阅this article。
<强>更新强>
所以你在服务器上抛出错误并希望在客户端上获取错误文本?服务器上的错误应该导致500错误消息,并且不太可能将任何XML返回给客户端。也许你可以将一些东西传递给SoapException构造函数?
你看过docs for SoapException了吗?他们有一些使用SoapException的Detail属性传递信息的例子。
答案 1 :(得分:0)
你可以在浏览器中看到asmx(假设你使用的是asmx),看看它是否正常工作?
答案 2 :(得分:-1)
手动获取响应时,请使用以下命令:
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();
}