2011-08-12 3 views
5

그래서 WCF 서비스에 대한 끝점 구성 작업을하고 있습니다. 나는 전반적으로 서비스에 대한 경험이 거의 없지만, 서비스를 사용하는 프로젝트의 중간에 서있다. 엔드 포인트의 각 속성이 하나를 제외하고 무엇을하는지 대략 이해합니다. "bindingConfiguration".BasicHttpBinding 끝점 구성에서 담당하는 bindingConfiguration 특성은 무엇입니까?

여기 내 코드의 가려진 버전입니다 (실제 정보를 독점) :

 <endpoint address="http://localhost/SomeService.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISomeService" 
      contract="SomeService.ICoreService" name="BasicHttpBinding_ISomeService" /> 

는 여기에 MSDN의 포획이다 (그들은 구체적으로 언급하지 않는 같이).

유래는 "bindingConfiguration"에 대한 일치하는 문자열을 포함하는 몇 가지 질문을 가지고 있지만 아무도 explicetely 내 질문에 해결되지 물론

Microsoft's incomplete MSDN Entry

:이 사용되는지에

Most relative (I think) Stackoverflow question

어떤 아이디어?

학습의 목적으로 나는 찔러 여기에 잘못을 기꺼이합니다. 인증이나 보안과 관련이 있다고 생각합니다. 인터페이스의 검사에서 나는이 것에 대해서도 아무것도 알지 못한다.

도움이 될 것입니다.

건배 당신의 바인딩 섹션에서

매트

답변

14

을, 당신은 (귀하의 경우,은 BasicHttpBinding에서) 같은 바인딩 유형에 대해 여러 "구성"할 수 있습니다. 바인딩 구성에서는 사용할 구성 요소를 선택합니다.

MSDN에서 bindingConfiguration은 특성이기 때문에 <endpoint>에 대한 참조를 찾으십시오.이 특성에는 특성이 수행해야 할 내용에 대한 정의가 있습니다.

아래 예에서 서비스는 두 개의 끝점을 정의하며 둘 모두 basicHttpBinding을 사용합니다. 그 중 하나는 "일반"HTTP를 통해 노출되고 다른 하나는 HTTPS를 통해 노출됩니다. bindingconfiguration 속성은 WCF에 사용할 구성을 알려주는 속성입니다.

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="SimpleBasic"> 
       <security mode="None"/> 
      </binding> 
      <binding name="BasicOverHttps"> 
       <security mode="Transport"/> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyNamespace.MyService"> 
      <endpoint address="ep" 
         binding="basicHttpBinding" 
         bindingConfiguration="SimpleBasic" 
         contract="MyNamespace.IService" /> 
      <endpoint address="secure" 
         binding="basicHttpBinding" 
         bindingConfiguration="BasicOverHttps" 
         contract="MyNamespace.IService" /> 
     </service> 
    </services> 
</system.serviceModel> 
+0

귀하의 예는 완벽합니다. 빠른 답장을 보내 주셔서 감사합니다. 따라서 기본적으로 사용자가 지정한 바인딩을 구성하는 추가 XML이 있습니다. 기본 basicHttpBinding을 필요로하는 것은 아니 었습니다. 솔루션 내에 다른 파일 안에 여러 개의 을 찾을 수 있었지만 특정 서비스 프로젝트에는 없었습니다. 지금 궁금한 점은 이러한 바인딩에 대한 구성을 seprate 구성 파일에 저장할 수 있습니까? 파일이나 프로젝트에서 내 bindingConfiguration의 이름과 정확하게 일치하는 정의를 찾을 수 없었습니다. 느린 코드? –

+1

아마도. 나는 당신이 (IIS에서) 디렉토리에 web.config를 가지고 있다고 생각한다. 서브 디렉토리에있는 web.config는 부모의 설정을 상속 받게 될 것이다. (나는 시도하지 않았다.) 그렇다면 이것이 누락 될 가능성이있다. 구성은 상위 구성 중 하나에서 이루어졌습니다. 그러나 그것은 단지 나쁜 설정 일 가능성이 높습니다. – carlosfigueira

관련 문제