2011-02-01 12 views
18

Skonfigurowałem moje usługi WCF do pracy z SSL, ale działa TYLKO, jeśli powiązanie HTTP istnieje w witrynie sieci Web IIS. Podczas wiązania HTTP nie istnieje, a istnieje tylko HTTPS wiązanie pojawia się następujący błąd:Jak skonfigurować usługi WCF do pracy za pośrednictwem protokołu HTTPS bez powiązania HTTP?

The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address. Either supply an http base address or set HttpGetUrl to an absolute address.

Jak mogę rozwiązać ten problem?

Dzięki.

+0

mógłbyś wyjaśnić, co to dokładnie znaczy "działa tylko jeżeli wiązanie HTTP istnieje"? Dzięki ... Mam do czynienia z tym samym problemem w moim wcf .. WCf działa dobrze jeden serwer, ale nie na drugim .. :( – Lamps

Odpowiedz

44

zmodyfikować konfigurację w ten sposób:

<behaviors> 
    <serviceBehaviors> 
    <behavior> <!-- behavior can have name (must have name in WCF 3.x) --> 
     <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
+1

Mam do czynienia z tym samym problemem .. Ale zdarza się to tylko na kilku serwerach .. Usługi hostowane jeden serwer działa dobrze, a inny serwer rzuca błąd wspomniany w pytaniu .. Dowolny pomysł ? Dzięki. – Lamps

4

trzeba użyć mexHTTPSBinding unstead z mexHTTPBinding

<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
+0

To nie jest przyczyną problemu OP, ale jest prawdziwe, jeśli zdefiniujesz punkt końcowy metadanych ponieważ musi być dostępny przez 'https'. – Darbio

Powiązane problemy