代码之家  ›  专栏  ›  技术社区  ›  Subhasis

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

  •  0
  • Subhasis  · 技术社区  · 17 年前

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

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

    不管怎样,我确实可以看到“响应XML中的错误”。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Brian Lyttle    17 年前

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

    假设您使用的是.NET,是否已在服务器上启用ASP.NET错误显示?看见 this article

    更新:

    那么,您正在服务器上抛出错误,并希望在客户端上获取错误文本?服务器上的错误应该会导致500条错误消息,并且不太可能向客户端返回任何XML。也许您可以将某些内容传递给SoapException构造函数?

    docs for SoapException ? 它们有一些使用SoapException的Detail属性传递信息的示例。

        2
  •  0
  •   Chrisb    17 年前

        3
  •  -1
  •   John Saunders    15 年前

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

    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();
    }