2012-02-23 6 views
1

서비스 설정에는 net.tcp

<service name="Services.MyService"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.tcp://localhost:9000/Services/MyService/" /> 
     </baseAddresses> 
    </host> 
    <endpoint name="NetTcpService" 
     address="" 
     binding="netTcpBinding" 
     bindingConfiguration="TcpConfig" 
     contract="Service.IMyService" /> 
    <endpoint 
     address="mex" 
     binding="mexTcpBinding" bindingConfiguration="TcpConfig" 
     contract="IMetadataExchange" /> 
    </service> 

클라이언트 코드 오류를 듣고 어떤 엔드 포인트는 :

var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/mex"); 
var binding = new NetTcpBinding { TransferMode = TransferMode.Streamed, SendTimeout = TimeSpan.MaxValue }; 
var channel = new ChannelFactory<IMyService>(binding, endPoint); 
var proxy = channel.CreateChannel(); 

오류 :

No Endpoint listening at "net.tcp://localhost/Services/MyService/mex"

TCP 서비스가 실행, 방화벽은 해제되지 않습니다. 무엇이 실종되었는지 확실하지 않습니다.

+0

엔드 포인트 net.tcp를 사용하면 기본적으로 동일한 메시지가 나타납니다. // localhost : 9000/Services/MyService – Suedeuno

+0

내 응답보기 - 바인딩을 만들 때 (예 : TransferMode.Buffered'로 변경해야합니다. 'TcpCOnfig' 바인딩 설정 ** - 게시판에 ** 표시되지 않았습니다 ... - 스트리밍 전송 모드를 설정합니다) –

+0

서버 측 구성의 ''부분을 표시 할 수 있습니까? 부디?? –

답변

3

귀하의 실제 서비스 net.tcp://localhost:9000/Services/MyService/에서 청취하는 - 그래서 같이하는 코드를 변경하려고 :

var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/"); 
var binding = new NetTcpBinding { TransferMode = TransferMode.Buffered, SendTimeout = TimeSpan.MaxValue }; 
var channel = new ChannelFactory<IMyService>(binding, endPoint); 
var proxy = channel.CreateChannel(); 

주소를 바꾸는 것 외에, 또한 기본 인 (대신 Streamed의) TransferMode.Buffered를 사용 - 스트리밍 전송 모드를 사용 중임을 나타내는 서버 측 구성에 구성이 표시되지 않습니다.

주소 net.tcp://localhost:9000/Services/MyService/mex메타 데이터 교환 주소이며 서비스는 아닙니다. 이 엔드 포인트는 클라이언트가 서비스를 검색하여 클라이언트가 제공하는 서비스 메소드, 예상 매개 변수 등 클라이언트 측 프록시 코드를 작성하는 데 필요한 모든 정보를 얻을 수 있어야합니다. 그러나 실제 서비스가 거주하고 요청에 응답하는 서비스 주소는 NOT입니다.

+0

입니다. 서비스 구성에 transferMode를 추가하고 net.tcp : // localhost에 포인트 된 클라이언트 끝점을 추가합니다. : 9000/Services/MyService 그리고 여전히 동일한 메시지가 있습니다. – Suedeuno

+0

@Suedeuno : ** 당신의 호스팅 서비스 **는 당신의 WCF 서비스입니까? 응용 프로그램에서 자체 호스팅되거나 IIS 내부에서 호스팅됩니까 ?? –

+0

이 서비스는 자체 호스팅 됨 – Suedeuno