2012-07-27 4 views
1

IIS 7 (MEX 엔드 포인트) net.tcp WCF 서비스에 대한 오류 "호환되는 TransportManager이 발견이"나는

<system.serviceModel> 

<bindings> 
    <netTcpBinding> 

    <binding name="CommonUserNameBinding" maxConnections="1000" portSharingEnabled="True"> 
     <security mode="None"> 
     </security> 
    </binding> 

    </netTcpBinding> 

</bindings> 


<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 

<services> 
    <service name="MyNameSpace.SimplePluginService" behaviorConfiguration="CommonBehavior"> 

    <endpoint address="UserName" 
       binding="netTcpBinding" 
       bindingConfiguration="CommonUserNameBinding" 
       name="MyNameSpace.Contracts.ISimplePluginServiceUserName" 
       contract="MyNameSpace.Contracts.ISimplePluginService"> 
     <identity> 
     <dns value="WCfServer" /> 
     </identity> 
    </endpoint> 

    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" /> 

    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://localhost:5812/Service/SimplePluginService.svc"/> 
     </baseAddresses> 
    </host> 

    </service> 
</services> 


<behaviors> 

    <serviceBehaviors> 
    <behavior name="CommonBehavior"> 
     <serviceMetadata httpGetEnabled="True" policyVersion="Policy15" /> 
     <serviceDebug includeExceptionDetailInFaults="True"/> 
     <serviceCredentials> 

     <userNameAuthentication 
      userNamePasswordValidationMode="Custom" 
      customUserNamePasswordValidatorType="Megatec.MasterTourService.CustomUserNameValidator, Megatec.MasterTourService"/> 

     <serviceCertificate 
      findValue="WCFServer" 
      storeLocation="LocalMachine" 
      storeName="My" 
      x509FindType="FindBySubjectName"/> 

     <clientCertificate> 
      <authentication certificateValidationMode="PeerTrust" /> 
     </clientCertificate> 

     </serviceCredentials> 
    </behavior> 
    </serviceBehaviors> 

</behaviors> 

</system.serviceModel> 

</configuration> 

내가 지역 IIS 7.5을 디버깅 다음과 같은 설정으로 서비스를 만들었습니다. 사이트 및 응용 프로그램에는 활성 프로토콜 목록에 "net.tcp"가 있습니다.

net.tcp 바인딩은 IIS는 5812입니다 : * 나는 다음과 같은 오류를 가지고

URI 'net.tcp를 찾지 호환 TransportManager 없습니다 : // myComputerName : 5812/서비스 /SimplePluginService.svc/mex '. 가상 응용 프로그램 외부를 가리키는 절대 주소를 사용했거나 끝점의 바인딩 설정이 다른 서비스 나 끝점에서 설정 한 주소와 일치하지 않기 때문일 수 있습니다. 동일한 프로토콜에 대한 모든 바인딩은 동일한 응용 프로그램에서 동일한 설정을 가져야합니다.

다음 질문을 읽었습니다. No compatible TransportManager error,하지만 저에게는 적합하지 않습니다.

업데이트. 이 문제는 mex 끝점과 관련이 있습니다.

나는 (다른 바인딩 및 인증 유형) 서비스에 대한 서로 다른 엔드 포인트를 만들 수 있지만 MEX 엔드 포인트는 TransportManager와 오류를했다.

그것은 내 테스트에 따라 (바인딩 섹션에서) 행동과 보안 모드에 의존하지 않습니다.

그래서 mex 끝점은 무엇입니까? 이것은 IIS 콘솔 내에서 구성되기 때문에

+0

는, 나처럼, 여기에서 가져옵니다 http://stackoverflow.com/questions/3689008/wcf-maxconnections-property – Rodrigo

답변

2

endpoint 태그의 address="UserName" 특성을 둡니다. 메시지 자체는 오해의 소지가 있지만 IIS와 함께 주소를 정의하면 안됩니다. 10 netTcpBinding의 내 경우 설정의 MaxConnections에서

3

도움이됩니다.

나는 이유를 모른다. 누군가 설명하면 좋을 것이다. :)

1

나는 이유는 모르겠지만, 우리의 서비스는 귀하 (MEX 엔드 포인트)와 같은 오류로 활성화하기 위해 실패의 원인 바인딩에의 MaxConnections 설정.

maxConnection 속성을 제거하면 모두 해결되었습니다. 이런 경우 누군가에