2010-09-06 5 views
1

Я могу успешно использовать потоковое преобразование WCF для xfer данных с сервера на клиент на той же машине. Однако, как только я развертываю свой сервер на другой машине, я получаю ошибки в природе. «Не удалось выполнить вызов SSPI: имя целевого участника неверно». Кто-нибудь сталкивался с этим. Я попытался установить SecurotyMode.None с обеих сторон, но это дало мне некоторые другие ошибки тайм-аута!Потоковая передача через WCF с использованием NetTcpBinding

Вот сервер связывания:

NetTcpBinding binding = new NetTcpBinding(); 
binding.TransferMode = TransferMode.Streamed; 
binding.MaxReceivedMessageSize = int.MaxValue; 
binding.CloseTimeout = TimeSpan.MaxValue; 
binding.SendTimeout = TimeSpan.MaxValue; 
var ep = serviceHost.AddServiceEndpoint(typeof(ISessionResultsServer), binding, string.Format("net.tcp://localhost:{0}/ResultService", port)); 

Вот клиент связывания:

NetTcpBinding clientBinding = new NetTcpBinding(); 
clientBinding.TransferMode = TransferMode.Streamed; 
clientBinding.SendTimeout = TimeSpan.MaxValue; 
clientBinding.CloseTimeout = TimeSpan.MaxValue; 
clientBinding.MaxReceivedMessageSize = long.MaxValue; 
clientBinding.ReceiveTimeout = TimeSpan.MaxValue; 

ответ

2

Это не имеет ничего общего с потоковым видео. Это проблема безопасности. Вы используете Net TCP с защитой Windows, где служба должна аутентифицироваться клиенту, а клиент должен аутентифицироваться в службе.

Аутентификация службы в вашем случае основана на имени участника-пользователя. Это имя пользователя процесса, в котором размещен ваш сервис. Вам необходимо изменить конфигурацию клиента и установить правильную идентификацию в конечной точке.

Что-то вроде:

<client> 
    <endpoint name="..." addres="net.tcp://..." binding="netTcpBinding" bindingConfiguration="..." contract="..."> 
    <identity> 
     <userPrincipalName value="[email protected]" /> 
    </identity> 
    </endpoint> 
</client> 
+0

Согласитесь это не имеет ничего общего с потоковым видео. Когда мой режим безопасности установлен как описано выше, а SendTimeout изменился с MaxValue на 20 минут, вызов работал. –

Смежные вопросы