我正在尝试通过WCF传输一些文件,但是只要从客户端调用该方法,我就会收到以下消息:
The socket connection was aborted. This could be caused by an error processing
your message or a receive timeout being exceeded by the remote host, or an
underlying network resource issue. Local socket timeout was '00:10:00'.
我的方法包含在try...catch
中,因此如果在服务器上的方法中有任何异常抛出异常,它应该将其记录到控制台窗口,但不会记录任何内容。我也试过在本地运行服务器并在方法上设置断点,这个方法似乎没有被调用。
是否需要在net.tcp连接上设置属性或某些内容以允许在客户端进行流式传输?
答案 0 :(得分:4)
是否有财产或其他东西 需要在net.tcp连接上设置 允许在客户端流式传输?
是的 - 当然!您需要设置客户端配置以使用流式传输 - 在一个方向上( StreamedRequest ,如果您要将内容上传到服务器,或 StreamedResponse ,如果您要下载来自服务器,或只是简单的流式传输,如果你两种方式流式传输。)
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="streaming"
transferMode="StreamedResponse">
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint name="StreamEndpoint"
address="..."
binding="netTcpBinding"
bindingConfiguration="streaming"
contract="IYourService" />
</client>
</system.serviceModel>
您需要在名称(您喜欢的任何名称)下定义绑定配置,然后通过在<endpoint>
属性中指定该名称来引用bindingConfiguration=
中的配置。
有关详细信息,请参阅How to: Enable Streaming上的MSDN文档页面。
答案 1 :(得分:0)
您应该在服务器上配置跟踪并打开日志,以便更好地解释发生的事情 看看Service Trace Viewer Tool