0

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

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

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

4

3 回答 3

2

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

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

更新:

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

你看过SoapException 的文档吗?他们有一些使用 SoapException 的 Detail 属性传递信息的示例。

于 2009-09-06T18:13:57.420 回答
0

您可以在浏览器中访问 asmx(假设您使用的是 asmx)来查看它是否正常工作?

于 2009-09-06T18:26:26.180 回答
-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();
}
于 2009-09-07T16:02:19.097 回答