WSDL-URL für einen WCF-Dienst (Basichttpbinding) in einem Windows-Dienst gehostet
-
03-07-2019 - |
Frage
Ich bin auf einem unseren Server einen WCF-Dienst in einem Windows-Dienst bereitgestellt wird. Nachdem es in Basichttpbinding arbeiten und den Aufbau ein Test-Client in .NET (was schließlich arbeitete) Ich ging entlang und versuche, es von PHP für den Zugriff auf die Soapclient-Klasse. Der Endverbraucher wird eine PHP-Website sein, so muss ich es in PHP machen konsumierbar.
Ich stapfte habe, wenn ich die WSDL-URL in den Konstruktor der Soapclient-Klasse im PHP-Code musste eingeben. Wo ist die WSDL? Alles, was ich habe, ist:
http://172.27.7.123:8000/WordService und http://172.27.7.123:8000/WordService/mex
Keine dieser Bestrahlung WSDL.
ein Neuling in WCF Seine Ich könnte eine dumme Sache gefragt (oder ich könnte eine falsche Annahme, irgendwo habe). Bitte sanft: D
Und nein, http://172.27.7.123:8000/WordService?wsdl nicht zeigen etwas anderes als http://172.27.7.123:8000/WordService : (
Bin ich es in IIS Host gezwungen? Bin ich gezwungen, eine regelmäßige WebService zu benutzen?
Lösung
Dies könnte helfen:
http://msdn.microsoft.com/en-us/library /ms734765.aspx
Auf den Punkt gebracht Sie benötigen, um Ihre Service-Endpunkte und Verhalten zu konfigurieren. Hier ist ein minimales Beispiel:
<system.serviceModel>
<services>
<service
<!-- Namespace.ServiceClass implementation -->
name="WcfService1.Service1"
<!-- User behaviour defined below -->
behaviorConfiguration="SimpleServiceBehaviour">
<endpoint
address=""
binding="basicHttpBinding"
<!-- Namespace.Interface that defines our service contract -->
contract="WcfService1.IService1"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SimpleServiceBehaviour">
<serviceMetadata
<!-- We allow HTTP GET -->
httpGetEnabled="true"
<!-- Conform to WS-Policy 1.5 when generating metadata -->
policyVersion="Policy15"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Vergessen Sie nicht, um die XML-Kommentare zu entfernen, wie sie sind ungültig, wo sie sind.
Andere Tipps
Bitte lesen Sie diesen Link:
Offenlegen von einem WCF-Dienst mit mehreren Bindungen und Endpunkten
Unlike previous ASMX services, the WSDL (web service definition language) for WCF services is not automatically generated. The previous image even tells us that "Metadata publishing for this service is currently disabled.". This is because we haven't configured our service to expose any meta data about it. To expose a WSDL for a service we need to configure our service to provide meta information. Note: The mexHttpBinding is also used to share meta information about a service. While the name isn't very "gump" it stands for Meta Data Exchange.