WCF newbie here ... NetTcpBinding을 사용하여 WCF 서비스를 자체 호스팅하려고합니다. 내가 수행 한 MSDN "how-to" tutorial을 바탕으로 모든 그때 지금 NetTcpBinding에 WsHttpBinding과 변경 및 코드에서 바인딩과 같습니다코드에서 NetTcpBinding을 할 수 있습니까? 너?
var baseAddress = new Uri("net.tcp://localhost:8000/MyWebService");
var selfHost = new ServiceHost(typeof(ConcreteWebService), baseAddress);
try {
var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.Message;
selfHost.AddServiceEndpoint(typeof(IWebService), binding, "TRWebService");
selfHost.Open();
Console.WriteLine("The service is ready at {0}", baseAddress.AbsoluteUri);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
selfHost.Close();
} catch (CommunicationException ce) {
Console.WriteLine("An exception occurred: {0}", ce.Message);
selfHost.Abort();
}
것이 튜토리얼은 다음에 svcutil.exe에 실행해야 말한다이다 클라이언트에 대한 프록시를 생성 ...하지만 NetTcpBinding을 전환 한 이래로 svcutil이 더 이상 작동하지 않습니다. 내 서비스를 감지 할 수 없습니다. 나는 그 문제를 봤고, NetTcpBinding의 모든 단일 예제가 코드가 아니라 app.config 파일에 설정을한다는 것을 알았고, 모두 "Mex"라는 끝점을 추가하고 "mexTcpBinding"바인딩 유형을 추가했습니다. 이 코드에 해당하는 코드는 없습니다.
그래서 app.config를 사용하도록 프로젝트를 변경하고 코드 기반 접근 방식을 포기해야합니까? 누구든지 Mex가 무엇인지, 왜 내가 왜 그것을 필요로하는지, 그리고 왜 (분명히) 코드에서 호출 할 수 없는지를 설명 할 수 있습니까? 아니면 가능한지, 어떻게 또는 왜 낙담합니까? 일반적으로 언제 app.config를 사용하고 WCF 서비스를위한 코드를 사용할 것인가?
정확한 튜토리얼을 따르고 있고 콜백 계약을 원했기 때문에 tcp로 전환 한 후 똑같은 문제가있었습니다. – bryanbcook