C# 服务500异常响应
我正在调用返回500错误的Web服务:C# 服务500异常响应,c#,web-services,soap,C#,Web Services,Soap,我正在调用返回500错误的Web服务: using (var client = new PSGenericWebService.W_GENERICEMPLOYEEWS_PortTypeClient("GenericPort")) { client.Endpoint.Behaviors.Add(new MessageBehavior("U", "P")); try { var response = client.GetEmployeeDataByDateRa
using (var client = new PSGenericWebService.W_GENERICEMPLOYEEWS_PortTypeClient("GenericPort"))
{
client.Endpoint.Behaviors.Add(new MessageBehavior("U", "P"));
try
{
var response = client.GetEmployeeDataByDateRange();
Console.WriteLine(response.Length);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
我知道这个错误与日期范围有关,我在这方面写了一些代码。但使用fiddler,我得到了以下回应:
HTTP/1.1500内部服务器错误日期:2012年12月18日星期二17:15:04 GMT
内容长度:732内容类型:text/xml;字符集=UTF-8
X-Powered-By:Servlet/2.5jsp/2.1
SOAP-ENV:服务器
无效的
集成代理响应
20
74
返回的异常仅列为null。我想从返回的XML中获取DefaultMessage。因此,我不是在寻找代码的修复方法,而是在寻找如何解析所需消息的返回响应。谢谢。不知道你在问什么。。。您发布内容中的默认消息是从日期(2012-11-17)到日期(2012-12-18)的
范围不能大于30天。(27000,74)
。我在代码中省略了它以缩短它。我希望处理抛出的异常。如果你写e.Message,它只返回null这个词。但是使用fiddler,我看到了来自服务器的上述响应。如果我更正了日期范围,那么它将返回一个响应而不是异常,我更担心从异常中获取消息。这可能包含在InnerException
或异常的某些其他属性中。试试e.ToString()
,看看是否有任何东西看起来是正确的。所有东西都是空的。内部异常为null,我仔细检查了调试器,但找不到我要查找的信息。
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>null</faultstring>
<detail>
<IBResponse xmlns="" type="error">
<DefaultTitle>Integration Broker Response</DefaultTitle>
<StatusCode>20</StatusCode>
<MessageID>74</MessageID>
<DefaultMessage>
<![CDATA[From date (2012-11-17) and To date (2012-12-18) Range cannot be greater than 30 days. (27000,74)]]>
</DefaultMessage>
<MessageParameters>
<Parameter>
<![CDATA[2012-11-17]]>
</Parameter>
<Parameter>
<![CDATA[2012-12-18]]>
</Parameter>
<Parameter>
<![CDATA[30]]>
</Parameter>
</MessageParameters>
</IBResponse>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>