从c#调用WebService时出错500

时间:2015-10-30 13:05:08

标签: c# php web-services soap

我正在尝试从C#应用程序向PHP Web服务发出SOAP请求,并且我总是得到错误500.通过SoapUI尝试会导致同样的错误。

我能找到的唯一方法就是从PHP应用程序调用WS。

这是我的肥皂信封

 <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:main">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:addTicketByData soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <auth xsi:type="xsd:string"><![CDATA[$1$fC5.505.$ury..6xkf9eb/TUEgKdqF/]]></auth>
         <xmlValue xsi:type="xsd:string"><![CDATA[ 
            <?xml version="1.0" encoding="ISO-8859-1"?>
            <wsqualitor>
                <contents>
                    <data>
                        <cdcliente>1</cdcliente>
                        <cdcontato>121</cdcontato>
                        <idchamado>1</idchamado> 
                        <cdtipochamado>17</cdtipochamado>
                        <cdcategoria>2325</cdcategoria>
                        <cdlocalidade>2</cdlocalidade> 
                        <cdseveridade>1</cdseveridade> 
                        <dschamado>Testando Web Service Qualitor</dschamado>
                    </data>
                </contents>
            </wsqualitor> ]]>
        </xmlValue>
      </urn:addTicketByData>
   </soapenv:Body>
</soapenv:Envelope>

我收到了这个回复:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
      <title>500 - Internal server error.</title>
      <style type="text/css">
         <!--body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}-->
      </style>
   </head>
   <body>
      <div id="header">
         <h1>Server Error</h1>
      </div>
      <div id="content">
         <div class="content-container">
            <fieldset>
               <h2>500 - Internal server error.</h2>
               <h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
            </fieldset>
         </div>
      </div>
   </body>
</html>

2 个答案:

答案 0 :(得分:1)

IMO(In My Opinion),如果请求发送ny SOAP UI失败:

  • Soap UI发送的soap请求格式正确(我多年来从未遇到任何问题)
  • 错误来自被调用的webservices,它不会取消和请求

正如Fred所说,请联系WebService供应商,让他查看他的日志。

这可能只是一个Web服务器问题?

答案 1 :(得分:0)

我终于有了答案。

我的提供商为所有异常抛出了错误500。所以我无法弄清楚出了什么问题。与他们交谈时我发现我只需要允许Cookies绑定。工作得很好。

<bindings>
  <basicHttpBinding>
    <binding name="serverBinding" allowCookies="true">
      <security mode="Transport" />
    </binding>
  </basicHttpBinding>
</bindings>