2011-11-30 39 views
0

我在IIS中託管了一個WCF .svc文件,該文件位於使用https保護的虛擬目錄下。當通過我的瀏覽器請求wsdl時,我得到一個http 400錯誤。這裏是我的web.config的一大塊:使用https保護wcf

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
      <binding name="TransportSecurity"> 
       <security mode="TransportWithMessageCredential"> 
        <message clientCredentialType="Certificate"/> 
       </security> 
      </binding>  
    </basicHttpBinding>  
</bindings> 
<services> 
    <service name="AuthWorkStation_Extranet.App_Code.AwsService" behaviorConfiguration="ServiceBehavior">  
    <endpoint name="" address="https://extlpo01.srr.fr/Sphinx/Service.svc" binding="basicHttpBinding" bindingConfiguration="TransportSecurity" contract="AuthWorkStation_Extranet.App_Code.IAwsService" /> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceBehavior"> 
     <serviceCredentials> 
     <serviceCertificate storeName="Root" findValue="CA_SRR_DISTRIB" x509FindType="FindBySubjectName" /> 
     </serviceCredentials> 
     <serviceMetadata httpsGetEnabled="True" /> 
     <serviceDebug includeExceptionDetailInFaults="True"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

的人都知道這有什麼錯我的設置?

+0

對不起,HTTPS與BasicHttp需要傳輸安全模式與Windows,Basic或無clientCredentialType –

+0

我啓用了Windows身份驗證,以及基礎之一。 –

+0

你可以離開只是Anonumous? –

回答

0

如果你只是想要HTTPS,你需要更新你的web.config。更改以下:

<bindings> 
    <basicHttpBinding> 
    <binding name="TransportSecurity"> 
     <security mode="TransportWithMessageCredential"> 
     <message clientCredentialType="Certificate"/> 
     </security> 
    </binding>  
    </basicHttpBinding>  
</bindings> 

要:

<bindings> 
    <basicHttpBinding> 
    <binding name="TransportSecurity"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
     </security> 
    </binding>  
    </basicHttpBinding>  
</bindings> 
+0

您是否爲該網站啓用了客戶端證書?對於SSL,IIS中的客戶端證書設置應爲'Ignore' –

+0

刪除以下兩行後: 我的sll錯誤消失了,但我現在回到http 400錯誤的請求錯誤 –

+0

所以我finnaly找到了我的WCF的正確設置。我使用傳輸安全模式,證書clientCredentialType。我必須刪除mex端點並刪除serviceDebug標記。我也清空了服務端點的地址參數。 –