2011-07-27 20 views
6

bağlayıcısına sahip son nokta için şema http ile eşleşen bir temel adres bulunamadı Yerel bilgisayarımda kullanıcı adı/parola kimlik doğrulaması, kendiliğinden imzalı sertifika ile birlikte, tüm işlemler düzgün, ancak uygulamanızı IIS 7.5'e koyduğumda, ve windows server 2008 R2, bana hata veriyor:

WSHttpBinding ile son nokta için şema http ile eşleşen bir temel adres bulunamadı. Kayıtlı taban adres şemaları [https]. Benim web hizmeti cfg:
WSHttpBinding

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.serviceModel> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceCredentialsBehavior"> 
     <serviceCredentials> 
     <serviceCertificate findValue="cn=AmicCert" storeName="Root" storeLocation="LocalMachine" /> 
     <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Util.CustomUserNameValidator, Util" /> 
     </serviceCredentials> 
     <serviceMetadata httpGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service behaviorConfiguration="ServiceCredentialsBehavior" name="Service"> 
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="MessageAndUserName" name="SecuredByTransportEndpoint" contract="IService" /> 
    </service> 
</services> 
<bindings> 
    <wsHttpBinding> 
    <binding name="MessageAndUserName"> 
     <security mode="Message"> 
     <message clientCredentialType="UserName" /> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 
     <client /> 
    </system.serviceModel> 
    <system.web> 
<compilation debug="true" /> 
</system.web> 
</configuration> 

cevap

12

Size sadece HTTPS (SSL) için yapılandırılmış altından düzenliyoruz IIS web sitesi örneği gibi geliyor. Web sitesi örneğini sağ tıklayın ve "Bağlantıları Düzenle ..." yi seçin. Orada listelenen 80 numaralı portu görüyor musunuz? Ayrıca "Her zaman gerektirir" seçeneğinin açık olmadığından emin olmak için "SSL Ayarları" özelliğini de kontrol edin.

+0

tek bağlayıcı vardır ve bu bağlantı noktası 8010 (bağlantı noktası üzerinde olduğu forwarding), 80 portlu ve https olmadan başka bir bağlayıcı mı oluşturmalıyım? – croisharp

+0

Bağlantı noktası önemli değil, ancak sitenize bağlı olmayan bir HTTPS/SSL adresi olmalı, çünkü yapılandırmanızda taşıma güvenliği (yalnızca ileti güvenliği) kullanmıyorsunuz. –

+0

Keyset mevcut değil, şimdi bu hatayı atıyor :( – croisharp

1

işe ve hala IIS SSL gerektirecek zorunda elde etmek için, yapılandırma dosyasında son nokta bazı değişiklikler yapmanız gerekir: https ile hizmetin adrese address özelliği (https://...) ve listenUri özelliğini ayarlayın servisin adresi http ile (http://...). Bu, hem wsHttp hem de basicHttp için geçerlidir.

+0

Son noktamda belirtilen bir protokolüm yok, bu yüzden öyle değil mi – ashes999

9

Bitiş noktası için HTTPS/SSL kullanmak istemiyorsanız, Drew'un cevabı doğrudur.

<security mode="Message"> 

için: Eğer son nokta üzerinde SSL kullanmak istiyorum yoksa

, değiştirmek için ihtiyaç

<security mode="TransportWithMessageCredential"> 
İlgili konular