2011-07-27 60 views
6

我本地計算機上的用戶名/密碼身份驗證沒有自簽名證書,所有工作正常,但是當我把我的應用程序放在IIS 7.5上時,和Windows Server 2008 R2,它給了我錯誤:

無法找到與綁定WSHttpBinding的端點匹配方案http的基地址。註冊的基地址方案是[https]。 我的web服務CFG:
無法找到與綁定WSHttpBinding端點匹配方案http的基地址

<?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> 

回答

12

這聽起來像你主持下只配置爲HTTPS(SSL)的IIS網站實例。右鍵單擊網站實例並選擇「編輯綁定...」。你看到那裏列出的端口80(純HTTP)嗎?同時檢查「SSL設置」功能以確保「始終需要」選項未打開。

+0

只有一個綁定,這是端口8010(端口轉發),我應該創建另一個綁定80端口和沒有HTTPS? – croisharp

+0

端口無關緊要,但必須有一個非HTTPS/SSL地址綁定到該站點,因爲您沒有在您的配置中使用傳輸安全性(僅限郵件安全性)。 –

+0

Keyset不存在,它給我現在這個錯誤:( – croisharp

1

得到它的工作,仍然具有IIS以要求SSL,你需要在配置文件中的端點的一些變化:將address屬性服務的地址以https(https://...)和listenUri屬性的服務地址爲http(http://...)。這適用於wsHttpbasicHttp

+0

我沒有在我的端點中指定協議,所以這個不是嗎? – ashes999

9

如果您不想爲端點使用HTTPS/SSL,Drew的答案是正確的。

如果你想使用SSL在端點,您需要更改:

<security mode="Message"> 

到:

<security mode="TransportWithMessageCredential"> 
相關問題