Существующее соединение было принудительно закрыто ошибкой удаленного хоста после обновления .Net 4.0 с .Net 3.5 - PullRequest
2 голосов
/ 03 ноября 2011

Привет! Недавно я обновил свой клиент WPF и службы WCF с .Net 3.5 до .Net 4.0. После обновления я начал получать следующую ошибку при использовании KerberosOverTransport:

Существующее соединение было принудительно закрыто удаленным хостом в System.Net.Sockets.Socket.Receive (буфер Byte [], смещение Int32, размер Int32, 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. Все это работало нормально с .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>

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 03 ноября 2011

Если вы используете хостинг через IIS, убедитесь, что для свойства .NET Framework Version в вашем пуле приложений установлено значение v4.0.

...