La demande a échoué avec l'état HTTP 404: Pas Trouvé

Je suis en train d'appeler le php web service soap de la .Net Client mais j'obtiens l'erreur suivante:

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: 

Je ne suis pas en mesure d'obtenir le problème est que php est un serveur Soap côté ou de l' .Net côté client. Je suis nouveau en php.

s'il vous plaît aider qui que ce soit.

Suivant est le serveur SOAP code:

ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("http://10.20.1.161/api/soap/report.wsdl");
$server->addFunction("testServer");
$server->handle();

suivant est le SAVON .Net code Client:

 protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                MyService ms = new MyService(); 
                Object ac = ms.testServer();
            }
            catch (Exception ae)
            {
                Response.Write(ae);
            }
        }

Je voudrais partager mon WSDL c'est comment il est...

<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>

S'il vous plaît aider..

  • Pouvez-vous réellement vue. 10.20.1.161/api/soap/rapport.wsdl dans votre navigateur? Est votre serveur php en cours d'exécution?
  • 404 not found est assez clair, n'est-ce pas? Êtes-vous sûr que l'URL est correcte?
  • Télécharger l'URL du WSDL-vous dans un navigateur. Au bas sera l'URL du point de terminaison de votre client va être d'essayer de les utiliser. Pouvez-vous voir que l'URL n'existe pas / travail à l'extérieur de la requête SOAP?
  • bonjour Mike de de Klerk, merci pour la réponse, oui l'url fonctionne très bien dans le navigateur web, alors même que l'ajout de la refrence de l' .projet net aucune erreur n'est affiché...quand je fais un appel, le message d'erreur "http 404" est affiché
  • salut les Rup, merci pour la réponse, comment dois-je télécharger l'url du wsdl, si c'est à l'aide de 10.20.1.161/api/soap/rapport.wsdl, alors c'est woking bien dans le navigateur..
  • Oui, c'est ce que je voulais dire: ouvrir 10.20.1.161/api/soap/rapport.wsdl dans un navigateur et vous devriez obtenir un document XML. (Vous devrez "afficher la source".) Rechercher un "point de terminaison' élément: ce sera l'URL de votre .NET client est en train d'essayer de l'utiliser. Assurez-vous que cette URL est correct et fonctionne. Sinon, vous pouvez probablement trouver dans le client de service web propriétés dans votre .Un projet de réseau.
  • salut les Rup, merci, comme vous l'avez dit j'ai parcouru l'url du wsdl et viewd la source, mais je ne pouvais pas trouver le "point de terminaison" dans l'élément XML. Est-il quelque chose qui manque avec le WSDL, s'il vous plaît répondre.
  • salut Peeka, merci pour la réponse, '404 non trouvé" comme je l'ai googlé dit que le serveur de relation est disponible, mais la ressource est introuvable. mais WSDL url fonctionne très bien. Est-il thign manquant de le WSDL. s'il vous plaît répondre.
  • Droit - je voulais dire le <soap:address> tag. (Je pensais que c'était appelée <soap:endpoint> désolé.) Ne l'URL il y a du travail? http://10.20.1.161/api/soap/parc_web_servise.php Il y a une erreur d'orthographe: il doit être "service" avec un "c", mais tant que le serveur a la même orthographe, c'est OK.
  • salut les Rup, Merci pour la réponse, c'était bien l'un que vous l'avez fait remarquer la faute d'orthographe "service" avec un " c "au lieu de" s " en elle. Merci beaucoup pour la solution, reste fonctionne bien. encore une fois merci Rup.

InformationsquelleAutor user1846750 | 2012-11-26