2

嗨,我最近将我的 WPF 客户端和 WCF 服务从 .Net 3.5 升级到了 .Net 4.0。升级后,我在使用 KerberosOverTransport 时开始出现以下错误:

远程主机在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) 处的 System.Net.Sockets.NetworkStream.Read(Byte[] 缓冲区强制关闭现有连接, Int32 偏移量, Int32 大小)

这是我的客户端绑定

  <binding name="StreamingBinding_Kerberos">
      <gzipMessageEncoding innerMessageEncoding="textMessageEncoding"
                           maxArrayLength="2147483647" />
      <security authenticationMode="KerberosOverTransport"/>
      <httpsTransport transferMode="StreamedResponse"
                      maxReceivedMessageSize="536870912"
                      authenticationScheme="Anonymous" />
    </binding>

这是我正在使用的端点:我正在从 TestService 方法返回一个 Stream。所有这些在 .Net 3.5 上都可以正常工作,但是一旦我们升级到 .Net 4.0,这一切都停止了。我们有另一个使用 UsernameOverTransport 的绑定,即使在.Net 4.0 升级后也可以正常工作。

  <binding name="StreamingBinding_Username">
      <gzipMessageEncoding innerMessageEncoding="textMessageEncoding"
                           maxArrayLength="2147483647" />
      <security authenticationMode="UserNameOverTransport"/>
      <httpsTransport transferMode="StreamedResponse"
                      maxReceivedMessageSize="536870912"
                      authenticationScheme="Anonymous" />
    </binding>

请帮忙!

4

1 回答 1

0

如果您通过 IIS 托管,请确保您的应用程序池上的 .NET Framework 版本属性设置为 v4.0。

于 2011-11-03T17:14:46.440 回答