我试图从.Net客户端调用php soap web服务,但收到以下错误:
System.Net.WebException was unhandled by user code
Message="**The request failed with HTTP status 404: Not Found**."
Source="System.Web.Services"
StackTrace:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at php_webservice_test_CS.WebReference.MyService.testServer() in c:\documents and settings\gdeshpande.parcdev.003\my documents\visual studio 2008\projects\php_webservice_test_cs\php_webservice_test_cs\web references\webreference\reference.cs:line 79
at php_webservice_test_CS._Default.Page_Load(Object sender, EventArgs e) in C:\Documents and Settings\gdeshpande.PARCDEV.003\My Documents\Visual Studio 2008\Projects\php_webservice_test_CS\php_webservice_test_CS\Default.aspx.cs:line 23
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: 我不能得到的问题是php Soap服务器端或.Net客户端。我是php的新手。
请帮助任何人。
以下是SOAP服务器代码:
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("http://10.20.1.161/api/soap/report.wsdl");
$server->addFunction("testServer");
$server->handle();以下是SOAP .Net客户端代码:
protected void Page_Load(object sender, EventArgs e)
{
try
{
MyService ms = new MyService();
Object ac = ms.testServer();
}
catch (Exception ae)
{
Response.Write(ae);
}
}我想分享我的WSDL是这样的……
<wsdl:definitions xmlns:tns="http://10.20.1.161/api/soap/"
targetNamespace="http://10.20.1.161/api/soap/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<wsdl:types>
<s:schema targetNamespace="http://10.20.1.161/api/soap/">
<s:complexType name="stringArray">
<s:annotation>
<s:documentation> A string array type </s:documentation>
</s:annotation>
<s:complexContent>
<s:restriction base="soapenc:Array">
<s:attribute ref="soapenc:arrayType" wsdl:arrayType="s:string[]"/>
</s:restriction>
</s:complexContent>
</s:complexType>
</s:schema>
</wsdl:types>
<wsdl:message name="reportRequest" />
<wsdl:message name="reportResponse">
<wsdl:part name="resParam" type="tns:stringArray"/>
</wsdl:message>
<wsdl:portType name="MyPortType">
<wsdl:operation name="testServer">
<wsdl:documentation> Get a complex type object </wsdl:documentation>
<wsdl:input message="tns:reportRequest"/>
<wsdl:output message="tns:reportResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="MyPortType" type="tns:MyPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="testServer">
<soap:operation soapAction="http://10.20.1.161/api/soap/testServer"/>
<wsdl:input>
<soap:body use="encoded" namespace="http://10.20.1.161/api/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="http://10.20.1.161/api/soap/"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="MyService">
<wsdl:port name="MyPortType" binding="tns:MyPortType">
<soap:address location="http://10.20.1.161/api/soap/parc_web_servise.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>请帮帮我..
发布于 2012-11-26 18:39:35
您得到了404响应,错误消息404 or Not find是一个HTTP标准响应代码,表明客户端能够与服务器通信,但服务器找不到所请求的内容。
确保你有有效的网址,试着把你的链接放在浏览器中,看看它是否正确,如果你请求的网址有特殊的标题,在google chrome上有一个名为PostMan的有用的扩展,你可以根据需要添加标题并测试网址。
发布于 2018-04-20 18:18:27
将所有权限附加到IIS。控制面板->打开和关闭窗口功能

https://stackoverflow.com/questions/13562591
复制相似问题