이 질문을 쓰는 이유는 WCF 서비스를 통해 Windows 서비스와 WPF 앱간에 통신하려고 할 때 다음과 같은 오류가 발생하는 것 같습니다. 바인딩 NetNamedPipe :WCF를 사용하는 Windows 서비스 NetNamedPipe를 사용하여 클라이언트와 통신
System.ServiceModel.EndpointNotFoundException : 거기 net.pipe에서 듣기에는 엔드 포인트 없었다 : // localhost를/Pipe_SendInfo
이제
피투성이의 세부 사항.
좋아요, 나는 주기적으로 코드를 실행하는 Windows 서비스를 가지고 있는데, 사용자가 서비스 내부에서 무슨 일이 일어나는지 알려주고 싶었습니다. 그래서 NetNamedPipe WCF 서비스를 통해이 작업을 수행 할 수 있다고 읽었습니다. 두 가지 테스트 응용 프로그램을 만들었고 성공적으로 한 프로세스에서 다른 프로세스로 메시지를 보낼 수있었습니다. 그때 :((동일한 컴퓨터에서) 클라이언트 응용 프로그램에 Windows 서비스에서 메시지를 보내 지금까지 비참하게 실패 시도
내 Windows 서비스는 기본적으로이 (정보를 보내려고)을 수행합니다.
ChannelFactory<SkipSyncLib.ISendInfo> pipeFactory =
new ChannelFactory<SkipSyncLib.ISendInfo>(
new NetNamedPipeBinding(),
new EndpointAddress("net.pipe://localhost/Pipe_SendInfo"));
pipeFactory.CreateChannel();
pipeFactory.SendInfo(info);
과 정보를 수신하도록되어 응용 프로그램이 시작할 때이 작업을 수행합니다 Windows 서비스가 내가 다른 콘솔 응용 프로그램이 엔드 포인트를 찾기 위해 비참하게 실패하면서
는public void Start()
{
HostService = new ServiceHost(this, new Uri[] { new Uri("net.pipe://localhost") });
HostService.AddServiceEndpoint(typeof(ISendInfo), new NetNamedPipeBinding(), "Pipe_SendInfo");
try
{
HostService.Open();
}
catch (Exception exc)
{
//Error handling
}
}
키커는 그 수 있는지 실행중인 클라이언트 앱에 정보 보내기 성공적으로 그래서 논리는 아마도 사용자와 관련이 있다고 말할 것입니다. 그러나 나는 그것을 알아낼 수 없다.
아이디어가 있으십니까? 명명 된 파이프를 삭제하고 HTTP 바인딩을 사용해야합니까?
방금 전에 명명 된 파이프에 대해 알아 냈으므로 대답이 명확한 경우 부드럽게 작성하십시오.
감사합니다.
실행중인 OS는 무엇입니까? Windows Vista 이상인 경우 여기를 살펴보십시오. http://stackoverflow.com/questions/7477813/getting-endpointnotfoundexception-with-netnamedpipebinding-in-c-need-to-create. –
Server 2008. 작동시키기위한 방법을 찾았습니다. 명명 된 파이프를 사용할 수 있도록 클라이언트 응용 프로그램과 Windows 서비스를 동일한 사용자로 실행해야했습니다. – Jose