我有很多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
S的一个(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