1
我正在使用WCF发送数据并从两个不同的获胜表单应用程序运行在同一台机器。我正在使用namedpipe和duplexchannel。我的客户端实现如下所示。WCF namedpipe回调超时异常
InstanceContext myContext = new InstanceContext(this);
NetNamedPipeBinding nb = new NetNamedPipeBinding();
nb.MaxBufferPoolSize = 5000000;
nb.MaxBufferSize = 500000;
nb.MaxReceivedMessageSize = 500000;
nb.ReceiveTimeout = TimeSpan.FromMinutes(5);
DuplexChannelFactory<IService> myProxy = new DuplexChannelFactory<IService>(myContext, nb, new EndPointAddress("net.pipe://localhost/MyService"));
IService myServiceClient = myProxy.CreateChannel();
和服务器端实现如下所示:
NetNamedPipeBinding np = new NetNamedPipeBinding();
np.MaxBufferPoolSize = 5000000;
np.MaxBufferSize = 500000;
np.MaxReceivedMessageSize = 500000;
host.AddServiceEndpoint(typeof(IService), np, "net.pipe://localhost/MyService");
host.OpenTimeout = TimeSpan.FromMinutes(5);
host.CloseTimeout = TimeSpan.FromMinutes(5);
host.Open();
我可以从1个应用程序通过回调到其他应用通过约100对象集合(ObservableCollection<Customer>
)。但是,如果我使它成为1000或更大的对象,则会发生以下超时异常错误。
到管道的写没有的 00:00:00在规定的超时时间内完成 。分配给此 操作的时间可能是更长超时的一部分。
我的代码有什么问题?请帮我解决这个问题。
在此先感谢...
您可以打开WCF客户端和服务器上跟踪,看看正在发生的事情的更多细节on:http://msdn.microsoft.com/en-us/library/ms733025.aspx也取决于你的对象的复杂性,你可以设置'MaxItemsInObjectGraph':http://blogs.msdn.com/b/drnick/archive /2006/11/14/how-to-configure-maxitemsinobjectgraph.aspx – 2011-03-06 09:25:56