많은 WCF 서비스가 있으며 다른 서비스에서 하나의 서비스를 호출해야합니다. 이 목적으로 netNamedPipeBinding
을 사용하기로 결정했습니다.net.pipe 예외를 수신하는 끝 점이 없습니다.
내 web.config 파일은 다음과 같습니다. (. 내가 여기에 관련이없는 물건을 복사하지 않은 경우)
<services>
<service name="Services.AuthorizationService" >
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" >
<endpoint
name="AuthorizationService"
address=""
binding="basicHttpBinding" contract="ServiceContracts.IAuthorizationService" />
<endpoint address="net.pipe://localhost/TestSite/AuthorizationService.svc"
binding="netNamedPipeBinding" contract="ServiceContracts.IAuthorizationService"
name="AuthorizationNamedPipeEndpoint"/>
</service>
</Services>
web.config 파일의 클라이언트 섹션은 다음과 같습니다
<client>
<endpoint address="net.pipe://localhost/TestSite/AuthorizationService.svc"
binding="netNamedPipeBinding" contract="ServiceContracts.IAuthorizationService" name="AuthorizationServiceNamedPipe" />
</client>
나는 OperationContract
들 중 하나 (GetDetails)를 호출하는 것을 시도하고있다 이 같은 :
using (ChannelFactory<IAuthorizationService> authorizationChannel = new ChannelFactory<IAuthorizationService>("AuthorizationServiceNamedPipe"))
{
IAuthorizationService authorizationService = authorizationChannel.CreateChannel();
var response = authorizationService.GetDetails(new GetDetailsRequestMessage());
}
이 코드를 실행하면, 나는 내가 OperationContract가의 GetDetails를 호출 라인에 예외를 얻을 :
메시지를 수락 할 수있는 net.pipe : //localhost/TestSite/AuthorizationService.svc에서 수신하는 끝점이 없습니다. 이것은 종종 잘못된 주소 또는 SOAP 조치로 인해 발생합니다. 자세한 내용은 InnerException을 참조하십시오.
정확한 문제를 찾을 수 없습니다. InnerException도 없습니다. Windows7 컴퓨터를 사용 중이며 IIS 버전은 IIS7.5입니다. 이 서비스는 아무 문제없이 Winform 응용 프로그램에서 호출 할 수 있습니다. net.pipe 바인딩은 IIS의 웹 사이트 바인딩에 추가됩니다.
net.pipe 전송을 사용하여 서비스가 올바르게 작동하는지 확인하려면 어떻게해야합니까? HTTP의 경우 IE에서 찾아 볼 수 있습니다.
두 서비스가 동일한 시스템에서 실행되고 있습니까? – Franchesca
@Franchesca : 예, 같은 시스템에서 IIS 7.5에서 실행됩니다. – Learner
내가 알 수있는 것은 서버 측에 주소 또는 호스트 기본 주소를 제공하지 않았다는 것입니다. 그게 실수 야? – Jack