WCF命名管道绑定 - 超时错误

时间:2012-03-29 12:16:01

标签: c# wcf

我正在创建WCF应用程序,

  • 客户端内置于x64位平台
  • 服务器内置于x86位平台
  • 两者之间的通信正在使用Namedpipe绑定。

服务器:与MS Access数据库通信的控制台应用程序,并发送执行命令的结果 客户端:winform应用程序与服务器通信并发送请求[选择查询SELECT * FROM TABLE_NAME]

  • 客户端调用服务器的功能[例如:public List Foo(字符串查询)]

问题:当在服务器端执行查询并且数据较小[比如6000行]时,数据将以格式列表发送到客户端 没有问题。随着数据大小变大[比如10,00,000行],客户端会给出一个错误,如下所述。

错误:由于管道已关闭,无法完成操作。这可能是由管道另一端的应用程序退出引起的。

问题可能是什么?

如果有人需要更多解释,请回复。

- 使用以下链接查找代码 http://www.c-sharpcorner.com/Forums/Thread/166598/wcf-namedpipe-binding-time-out-error.aspx

2 个答案:

答案 0 :(得分:1)

很可能您需要在服务器端和客户端增加配额和缓冲区大小:

示例:

  <netNamedPipeBinding>
    <binding name="Binding1" 
             maxBufferSize="655360" 
             maxReceivedMessageSize="655360">
       <readerQuotas maxDepth="2147483647" 
             maxStringContentLength="2147483647" 
             maxArrayLength="2147483647" 
             maxBytesPerRead="2147483647" 
             maxNameTableCharCount="2147483647" /> 
    </binding>
  </netNamedPipeBinding>

答案 1 :(得分:0)

命名管道绑定只能用于服务和客户端托管在同一台物理计算机上的地方(我还在想?) - 你有什么超时值?