将FileStream传递给WCF会抛出"此流不支持超时"异常

ija*_*n03 5 wcf filestream

尝试将小型FileStream传递给我的WCF服务时,我得到"此流不支持超时"错误.谁能看到我做错了什么?

接口:

[OperationContract]
List<SystemClass> ReadExcelFile(System.IO.FileStream stream);
Run Code Online (Sandbox Code Playgroud)

Web.Config中

<bindings>
  <basicHttpBinding>
    <binding name="streaming" maxReceivedMessageSize="2147483647" transferMode="Streamed">
    </binding>
  </basicHttpBinding>
</bindings>

<services>
  <service name="MISDashboard.wcfService" behaviorConfiguration="">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="streaming" contract="MISDashboard.wcfService"></endpoint>
  </service>
</services>
...
<httpRuntime maxRequestLength="2147483647"/>
Run Code Online (Sandbox Code Playgroud)

Cyb*_*axs 5

不要FileStream用作参数但是Stream.A FileStream是绑定到本地文件系统的流; 一旦开始传输数据,另一方面流将来自网络,因此不能在那里使用FileStream.

你可以相信它是相同的,但是Stream由WCF以特殊方式处理并绕过许多内部任务.

此外,对于发送大数据,请考虑阅读这篇伟大的文章.