2

我正在尝试通过 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'.

我的方法包含在 a 中try...catch,因此如果服务器上的方法中有任何抛出异常,它应该将其记录到控制台窗口,但不会记录任何内容。我还尝试在本地运行服务器并在该方法上设置断点,并且该方法似乎根本没有被调用。

是否需要在 net.tcp 连接上设置属性或其他内容以允许在客户端进行流式传输?

4

2 回答 2

4

是否需要在 net.tcp 连接上设置属性或其他内容以允许在客户端进行流式传输?

是的当然!您需要设置客户端配置以使用流式传输 - 在一个方向上(如果您想将内容上传到服务器,则为StreamedRequest,如果您想从服务器下载,则为 StreamedResponse,或者如果您双向流式传输,则只需Streamed) .

<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=

有关更多详细信息,请参阅有关如何:启用流式传输的 MSDN 文档页面。

于 2009-12-17T21:55:42.050 回答
0

您应该在服务器上配置跟踪并打开日志以更好地解释正在发生的事情。
查看服务跟踪查看器工具

于 2009-12-17T22:00:22.787 回答