获取此消息:
此请求操作发送到 net.pipe://127.0.0.1/MyService做了 没有收到回复 配置超时(00:01:00)。该 分配给此操作的时间可能 是一段时间的一部分 超时。这可能是因为 服务仍在处理中 操作或因为服务 无法发送回复消息。 请考虑增加 操作超时(通过强制转换 通道/代理到IContextChannel和 设置OperationTimeout属性) 并确保服务能够 连接到客户端。
任何想法,为什么会发生?
UPD:我的服务器代码没有挂起。即使该服务器方法为空,我也有相同的异常。实际上,它不会调用事件,它的开头的日志消息从未显示,断点永远不会被命中。
UPD2:我的代码非常简单,它在隔离的测试应用程序中运行正常
private static void ServerStart(string channelUri)
{
var host = new ServiceHost(typeof(Service), new Uri(channelUri));
host.AddServiceEndpoint(typeof(IServiceContract),
new NetNamedPipeBinding(NetNamedPipeSecurityMode.Transport),
new Uri(channelUri));
host.Open();
}
private static void ClientStart(string channelUri)
{
var factory = new ChannelFactory<IServiceContract>
(new NetNamedPipeBinding(), new EndpointAddress(channelUri));
var proxy = factory.CreateChannel();
proxy.StartOnServer();
}
答案 0 :(得分:1)
您已超过默认超时更改绑定或使您的操作更快完成。看一下这个question。
您的更新仍然存在配置问题。如果未调用服务器代码但未获得打开的异常,则需要打开完整跟踪并使用SVC跟踪查看器。您还可以挂钩服务主机事件以查看呼叫何时进入。如果您发布服务器和客户端配置,我们可以提供更多帮助。
答案 1 :(得分:0)
您的方法在服务器上执行的时间是否超过1分钟?
如果是这种情况会发生这种超时......
您可以在客户端的端点配置中进行设置...
<binding name="BasicHttpBinding_Binding" closeTimeout="10:01:00" openTimeout="10:01:00" receiveTimeout="10:10:00" .../>