2009-10-26 4 views
2

기존 Windows 서비스 프로세스에 대한 WCF 서비스 인터페이스를 구축 중입니다. WCF 인터페이스의 목적은 Windows 서비스에 대한 관리 기능을 구현하는 "명령 채널"을 제공하는 것입니다. 서비스 애플릿의 시작/중지/일시 중지 기능을 훨씬 넘어 Windows 서비스의 동작을 제어하고 Windows 서비스의 동작을 제어하기위한 여러 가지 OperationContract 메서드가 정의되어 있습니다.Windows 서비스에서 호스팅되는 WCF 서비스에 서비스 참조 추가 문제

이 WCF 서비스는 기존 프로세스의 일부로 제공됩니다. IIS 나 ServiceHost에서 WCF 서비스를 실행하는 것은 옵션이 아닙니다.

내 문제는 ServiceHost를 열기()에 오류가 발생하지 않지만, 내가 서비스를 찾기 위해 "WCF 테스트 클라이언트"(다른 사람 또는 anyting)를 얻을 수 있다는 것입니다.

이것은 내 첫 WCF 서비스이며, 내가하려는 일에 맞는 예제 나 패턴을 찾는 데 어려움이 있습니다. 그래서 나는 환상이 없으며 많은 일을 잘못하면 놀라지 않을 것입니다. 또한, 나는 'portSharingBinding = false'가 아닙니다. 나는 그걸 가지고 있었지만 실행하고 싶지 않은 다른 서비스를 지적하는 오류를 던지고있었습니다. 포트 공유가 필요합니까?

구성 정보 :

<system.serviceModel> 
    <bindings> 
    <netTcpBinding> 
     <binding name="PortBinding" portSharingEnabled="false" /> 
    </netTcpBinding> 
    </bindings> 
    <services> 
    <service name="NameChanged.ServiceManager.CommandService"> 
    <endpoint address="net.tcp://localhost" 
       binding="netTcpBinding" 
       bindingConfiguration="PortBinding" 
       name="ServiceManagerCommandChannel" 
       contract="NameChanged.ServiceManager.ICommandService" /> 
    </service> 
    </services> 
</system.serviceModel> 

나는 또한 다음과 같은 코드를 사용하여 어떤 설정 경로를 시도 : 열기에

ServiceHost host = new ServiceHost(typeof(CommandService))) 
    host.AddServiceEndpoint(typeof(ICommandService), 
          new NetTcpBinding(), "net.tcp://localhost:8000"); 
    host.Open(); 

또한,이 에러없이(). 그러나 서비스에 연결하는 데 성공하지 못했습니다. 시간에 대한

감사합니다,

답변

4

나는 단지 WCF 테스트 클라이언트에게 말할 수 있지만, 그것을위한 프록시를 생성 할 수 있도록이 서비스에 대한 메타 데이터를 찾고 있습니다. 위의 구성에서 메타 데이터 교환 엔드 포인트를 노출하고있는 것으로 보이지는 않습니다.

http://weblogs.asp.net/fabio/archive/2009/02/28/net-tcp-mex-endpoints-and-portsharing-in-wcf.aspx

당신은 프록시 생성에 노출 메타 데이터가를 사용하지 않고 서비스에 액세스 할 수 있지만, 수동으로 그렇게 할 채널을 만들 필요합니다 : 자세한 정보를 원하시면이 링크를보세요

http://msdn.microsoft.com/en-us/library/ms734681.aspx

관련 문제