2

こんにちは、最近、WPF クライアントと WCF サービスを .Net 3.5 から .Net 4.0 にアップグレードしました。アップグレード後、KerberosOverTransport を使用すると次のエラーが発生し始めました。

System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer) で、既存の接続がリモート ホストによって強制的に閉じられました。 、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にアップグレードするとすぐに、すべてが機能しなくなりました。Net 4.0 アップグレード後でも問題なく動作する UsernameOverTransport を使用した別のバインディングがあります。

  <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 Version プロパティが v4.0 に設定されていることを確認してください。

于 2011-11-03T17:14:46.440 に答える