我正在调用返回 500 错误的 Web 服务:
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);
}
}
我了解该错误与日期范围有关,因此我在这方面省略了一些代码。但是使用提琴手我得到以下响应:
HTTP/1.1 500 内部服务器错误日期:2012 年 12 月 18 日星期二 17:15:04 GMT 内容长度:732 内容类型:text/xml;charset=UTF-8 X-Powered-By: Servlet/2.5 JSP/2.1
<?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>
返回的异常只是列为空。我想从返回的 XML 中获取 DefaultMessage。所以我不是在寻找对我的代码的修复,我正在研究如何解析返回的响应以获取我需要的消息。谢谢你。