2014-04-04 1 views
2

WCF 웹 서비스에서 두 번째 끝점을 만들려고합니다. 브라우저에 도메인 URL을 넣어 새 끝점의 "해피 페이지"를 가져올 수 있으므로 IIS가 내 사용자 계정을 사용하여 서비스를 제대로 찾을 수 있습니다. 나는 서비스를 호출하는 웹 페이지를 실행하려고하면system.serviceModel/bindings/wsHttpBinding의 바인딩에 구성된 바인딩이 없습니다.

그러나, 나는 설정 파일의이 부분 때문에

The binding at system.serviceModel/bindings/wsHttpBinding does not have a configured 
binding named 'WSHttpBinding_IMonetToDss'. This is an invalid value for 
bindingConfiguration. (D:\webcontent\Monet\web.config line 178). 

아래의 오류가 발생하고있어 자동 생성 내가 만드는 비주얼 스튜디오입니다 서비스 참조 bindingConfiguration 값은 WSHttpBinding_IMonetToDss입니다. 그것은 그렇게해서는 안됩니다.

아래는 모두 web.config에서 가져온 enpoint입니다. 첫 번째 끝점 /OKeeffe/OKeeffe.svc이 제대로 작동하고 있습니다. /OKeeffe/MonetToDss.svc의 두 번째 끝점에 문제가 있습니다.

<client> 
    <endpoint address="http://insidesoap.dev.symetra.com/Escher/EscherService.svc" 
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IEscherService" 
    contract="Escher.IEscherService" name="WSHttpBinding_IEscherService" /> 
    <endpoint address="http://insideapps.dev.symetra.com/OKeeffe/OKeeffe.svc" 
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAgentPayments" 
    contract="AgentPayments.IAgentPayments" name="WSHttpBinding_IAgentPayments"> 
    <identity> 
     <userPrincipalName value="s.AgentData.dev" /> 
    </identity> 
    </endpoint> 
    <endpoint address="http://insideapps.dev.symetra.com/OKeeffe/MonetToDss.svc" 
    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMonetToDss" 
    contract="MonetToDss.IMonetToDss" name="WSHttpBinding_IMonetToDss"> 
    <identity> 
     <userPrincipalName value="s.AgentData.dev" /> 
    </identity> 
    </endpoint> 
</client> 

편집

여기에 웹 서비스 설정 파일

<system.serviceModel> 
    <services> 
     <service name="OKeeffeDataService.MonetToDss" 
      behaviorConfiguration="MonetToDssBehaviors" > 
     <endpoint address="" 
      binding="wsHttpBinding" 
      contract="OKeeffeDataService.IMonetToDss" /> 
     </service> 
     <service name="OKeeffeDataService.AgentPayments" 
       behaviorConfiguration="OKeeffeBehavior" > 
     <endpoint address="" 
        binding="wsHttpBinding" 
        contract="OKeeffeDataService.IAgentPayments" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="OKeeffeBehavior"> 
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="true"/> 
      <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     <behavior name="MonetToDssBehaviors" > 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
    </system.serviceModel> 

답변

8

당신이이 설정 파일에서 "WSHttpBinding_IMonetToDss"라는 이름의 바인딩을 정의 확신의 system.serviceModel 섹션입니까? 이 같은 ...

<bindings> 
<wsHttpBinding name="WSHttpBinding_IMonetToDss"> 
... 
</wsHttpBinding>  
<bindings> 
+0

웹 사이트 또는 웹 서비스 자체를 의미합니까? 방금 서비스의 구성 섹션을 게시했습니다. – NealR

+0

@NealR - 설정 파일의''섹션에서이 파일을 참조하는 끝점과 함께 정의해야합니다. – Tim

+0

나는 그게 내가 무슨 짓을했는지 믿을 : '<서비스 이름 = "OKeeffeDataService.MonetToDss" behaviorConfiguration = "MonetToDssBehaviors"> <엔드 포인트 주소를 = "" 바인딩 = "있는 wsHttpBinding" 계약 = "OKeeffeDataService.IMonetToDss"/> ' – NealR

관련 문제