我很难弄清楚如何让一个命名的管道WCF服务工作。该服务位于与可执行文件分离的程序集中。
配置如下所示:
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NoSecurityIPC">
<security mode="None" />
</binding>
</netNamedPipeBinding>
</bindings>
<client>
<endpoint name="internal"
address="net.pipe://localhost/"
binding="netNamedPipeBinding"
bindingConfiguration="NoSecurityIPC"
contract="TimeService.ITimeService" />
</client>
<services>
<service name="TimeService">
<host>
<baseAddresses>
<add baseAddress="net.pipe://localhost/" />
</baseAddresses>
</host>
<endpoint name="internal"
address="net.pipe://localhost/"
binding="netNamedPipeBinding"
bindingConfiguration="NoSecurityIPC"
contract="TimeService.ITimeService" />
</service>
</services>
</system.serviceModel>我使用一个ChannelFactory来创建一个代理来访问服务主机:
ServiceHost h = new ServiceHost(typeof(TimeService), new Uri("net.pipe://localhost/"));
h.AddServiceEndpoint(typeof(ITimeService), new NetNamedPipeBinding("NoSecurityIPC"), "");
h.Open();
ChannelFactory<ITimeService> factory = new ChannelFactory<ITimeService>("internal");
ICpTimeService proxy = factory.CreateChannel();
using (proxy as IDisposable)
{
this.ds = proxy.LoadData();
}我不知道我在创建ChannelFactory时做错了什么。它似乎无法在配置中找到"channel1“。当我手动创建绑定并将其传递给ChannelFactory构造函数时,工厂和代理将被创建,但是对LoadData()的调用失败(超时)。
有人能看到我做错了什么吗?
编辑:我在app.config上面编辑以确保两个端点具有完全相同的数据。解决了我的食品厂问题。但是,如上所述对服务方法的调用仍然超时.。
发布于 2011-04-29 02:27:52
我看不出实际错误信息中对问题的描述,所以很难猜出您的问题是什么。您是否有可能试图在非管理帐户下运行此操作?目前,我在Windows7上的非管理用户帐户下使用NetNamedPipeBinding作为工控机的一种形式的WCF有问题。也许您也遇到了同样的问题?
https://stackoverflow.com/questions/2911923
复制相似问题