我有一个名为
的方法的Web服务public string GenerateReport(string sessionID,string reportID,string reportType,string userid)
我从db传递params作为soap
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GenerateReport>
<sessionID>372</sessionID>
<reportID>172</reportID>
<reportType>P</reportType>
<userid>IBOX</userid>
</GenerateReport>
</soap:Body>
</soap:Envelope>
但我得到的错误就像
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope>
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>System.Web.Services.Protocols.SoapException: Unable to handle request without a valid action parameter. Please supply a valid soap action. at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message) at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response) at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)</faultstring>
<detail />
</soap:Fault>
</soap:Body>
</soap:Envelope>
请帮助我...
答案 0 :(得分:0)
从外观上看,这似乎是端点URL的问题。您因缺少操作而获得异常,并在此处指定操作。
尝试使端点URL看起来像这样:
HTTP(S)://your_server/your_page.aspx/的 actionname 强>
其中actionname是您的方法的名称 - GenerateReport。
如果这样做无助于以调用服务的方式(端点URL,消息格式)继续搜索问题,而不是在数据中。更改数据对您没有帮助。您还可以使用由Web服务生成的wsdl并在SOAP UI中进行浏览 - 这将帮助您完全避免此类问题。
祝你好运!