ich habe einen WCF Service (gehostet auf einem IIS 10) und dieser stellt auch seine Metadaten mittels WSDL bereit.
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpsGetEnabled="true" httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
Die Security Settings für das basicHttpBinding sehen folgendermaßen aus:
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName" />
</security>
Mein Service hat folgenden Metadaten-Endpunkt konfiguriert:
<endpoint name="service_httpMetadataEndpoint" address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
Das funktioniert über https wunderbar!
Nun zum Problem:
Jetzt würde ich aber gerne nur http verwenden (also ohne SSL).
Also setze ich httpsGetEnabled="false" und die Security-Settings auf:
<security mode="TransportCredentialOnly">
<message clientCredentialType="UserName" />
</security>
Ich habe gehofft, dass mir trotzdem noch der http Zugang zur WSDL Definition bleibt, nur leider ist dem nicht so. Unter "myService.svc?wsdl" finde ich dann plötzlich nichts mehr.
Hat jemand eine Ahnung warum dann plötzlich kein ?wsdl Aufruf mehr möglich ist, obwohl httpGetEnabled="true" gesetzt ist.
edit: Es wird dann plötzlich nur noch diese URL vorgeschlagen: "http://[servername]/myService.svc/mex"
Gruß
wax