2011-11-30 41 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标记。我也清空了服务端点的地址参数。 –