2010-09-20 5 views
6

Ich habe meine WCF-Dienst mit HTTPS ausgeführt, zeigt es die Infopage, aber die URL unter "Um diesen Dienst zu testen, ... mit der folgenden Syntax:" ist:Falsche URL in WSDL-Hyperlink bei Verwendung von WCF (https)

svcutil.exe https://servername.group.service.com/MyService.svc?wsdl (vollständige Adresse des Servers)

Statt der korrekten URL https://my.service.com/MyService.svc?wsdl (zugewiesen Hostheader), wie kann ich es die richtige URL zu zeigen (<URL of the Service> + ?wsdl)?

<services> 
    <service name="MyService" behaviorConfiguration="MyServer.MyServiceBehavior"> 
    <endpoint binding="basicHttpBinding" bindingConfiguration="basicHttpBigStrings" contract="IMyService"> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="MyService.MyServiceBehavior"> 
     <serviceCredentials> 
     <serviceCertificate findValue="my.service.com" x509FindType="FindBySubjectName"/> 
     </serviceCredentials> 
     <serviceMetadata httpsGetEnabled="true"/> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<bindings> 
    <basicHttpBinding> 
    <binding name="basicHttpBigStrings"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
     </security> 
     <readerQuotas maxStringContentLength="1048576" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 

Ich habe bereits versucht <serviceMetadata httpsGetEnabled="true"/> in <serviceMetadata httpsGetEnabled="true" httpsGetUrl="https://my.service.com/MyService.svc"/> zu ändern, aber es sagt nur:

+0

Ich habe das gleiche Problem. Haben Sie eine Lösung dafür gefunden? – Turrau

+0

Nein, nicht so weit, tut mir leid ... – Hinek

+0

Hosten Sie diesen Dienst in IIS? Wenn dies der Fall ist, ermittelt IIS diese URL und nicht WCF. –

Antwort

4

Sie angegeben, dass Sie Host Header festgelegt haben. Ist es für SSL oder nur Http gesetzt. Beachten Sie, dass die IIS-Benutzeroberfläche keine Felder zum Festlegen des Host-Headers für SSL enthält. Sie müssen Admin-Skripts (IIS 6.0) oder netsh.exe für eine spätere Version von IIS verwenden.

+1

Host-Header ist nur für HTTP festgelegt, haben Sie Links zum Festlegen der Host-Header für SSL? – Hinek

+1

Wie ist das eine Lösung für das Problem? –

+0

Amit - danke !! Nach stundenlanger Suche nach Lösungen gelang dies. Wir haben die Host-Header für HTTP und HTTPS entfernt, um unsere Load-Balancer-Konfiguration zu berücksichtigen. Das Zurücksetzen des Problems wurde behoben. Übrigens haben wir auch eine leere Seite mit einem 400 fehlerhaften Anforderungsfehler angezeigt, wenn Sie versuchen, die WSDL über HTTPS anzufordern (für alle, die das gleiche Problem haben). – adamisnt

0

„bereits eine Anmeldung für URI https://my.service.com/MyService.svc existiert“ Sie einige Hintergrundinformationen zu diesem Thema link unter der folgenden Stackoverflow finden können - das erste, was ich würde versuchen (sie geben mehrere verschiedene Szenarien, die ein wenig mehr beteiligt sind) wäre, den Listen-URI auf der Service-Endpunkt-Definition zu setzen. Als ich Probleme hatte, die WSDL-Adresse in meiner App richtig zu bekommen, konnte ich diese korrigieren. In diesem Fall habe ich einfach versucht, das Schema zu reparieren (wir waren hinter einem BIGIP und es wurde SSL beendet, also musste das Schema https sein, obwohl WCF auf der Serverseite dachte, es würde http bekommen).

<endpoint address="https://www.sslloadbalancer.com" binding="someBinding" contract="IMyServiceInterface" listenUri="http://www.servicehost.com" ... /> 

Ich glaube, dass die WSDL-fix für Sie

+0

Der Dienst wird in IIS gehostet, sodass IIS die URL bestimmt. Ich kann die Endpunktadresse nicht manuell in der Konfiguration festlegen. – Turrau

+0

Mein Beispiel stammt von gehosteten IIS-Diensten. Sie wissen, wo auf IIS Sie Ihren Dienst bereitstellen. Warum können Sie die Endpunktadresse nicht in der Konfiguration festlegen? – HintonBR

Verwandte Themen