2011-11-30 2 views
0

IIS 6.0에서 https로 보안 된 가상 디렉터리 아래에 WCF.svc 파일을 호스팅했습니다. 내 브라우저를 통해 wsdl을 요청할 때 http 400 오류가 발생합니다.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> 

사람이 내 설정을 잘못 알고 : 여기 내 Web.config의 덩어리이다?

+0

죄송합니다, HTTPS에 대한 BasicHttp 당신은 내가 Windows 인증뿐만 아니라 기본 하나를 사용할 수 윈도우, 기본 또는 없음 clientCredentialType –

+0

와 보안 모드로 운반해야합니다. –

+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의 클라이언트 인증서 설정은 '무시'여야합니다. –

+0

다음 두 줄을 제거한 후 내 sll 오류 disapeared하지만 지금은 http 400 나쁜 요청 오류 –

+0

다시 그래서 나는 finnaly 내 WCF에 대한 올바른 설정을 발견. 전송 보안 모드 인 인증서 clientCredentialType을 사용합니다. mex 끝점을 제거하고 serviceDebug 태그를 제거해야했습니다. 또한 서비스 끝점의 주소 매개 변수를 비 웠습니다. –