Я пытаюсь отладить службу WCF. Этот клиент смог подключиться в прошлом, но теперь я не могу подключиться. Служба развертывается на сервере. Я могу попасть на страницу обслуживания сервера с помощью браузера, и я вижу инструкции для генерации клиента. Я повторно создал клиентский прокси и файл конфигурации с помощью svcutil.Проблема подключения к службе WCF - возможно, безопасность?
Клиент запускается, но первый вызов службы возвращается с ошибкой после тайм-аута 1 минута. Между тем, я могу подключиться к службе, запущенной на сервере, и выполнить код там. Я вижу, что мой клиент никогда не регистрировался. Точка останова в серверном коде для этого вызова не попадает. По некоторым причинам, я не могу выйти в код сервера (но я могу присоединить отладчик к службе на сервере): установлен
Unable to automatically step into the server.
Connecting to the server machine 'shuttle' failed.
Please install the Visual Studio 2008 Remote Debugger on the
server to enable this functionality.
Удаленный отладчик и работает, или конечно. Я получаю эту ошибку после долгого ожидания:
Client is unable to finish the security negotiation within the
configured timeout (00:00:00). The current negotiation leg is 1 (00:00:00).
Когда я установить режим безопасности = нет, и увеличить время ожидания, изменения ошибки в
The open operation did not complete within the allotted timeout of 00:02:00.
The time allotted to this operation may have been a portion of a
longer timeout.
У меня нет каких-либо брандмауэров, работающих и я вижу запрос, поступающий на сервер в Ethereal. Я смотрю на поток TCP, и я не могу сказать, почему переговоры терпят неудачу. В журнале событий ничего не происходит. Я иссякаю и ценю намек.
Клиент app.config содержит раздел, который SvcUtil генерируемый:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_SportRadarDCS"
closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288"
maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8"
useDefaultWebProxy="true">
<readerQuotas
maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384"
maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession ordered="true"
inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint
address="...."
binding="wsDualHttpBinding"
bindingConfiguration="WSDualHttpBinding_SportRadarDCS"
contract="SportRadarDCS"
name="WSDualHttpBinding_SportRadarDCS">
<identity>
<userPrincipalName value=".. my domain user ..." />
</identity>
</endpoint>
</client>
</system.serviceModel>
</configuration>
Спасибо, очень полезно. Обнаружена ошибка: не было канала, который мог бы принять сообщение с действием «http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence». Я возьму, если отсюда. – cdonner
И получается, что это проблема DNS. Моя рабочая станция почему-то не была в DNS, а поиск на сервере для конечной точки обратного вызова не удался. Как только я это исправил, это сработало. – cdonner
ура для проверки точки, устранение проблемы подключения с помощью трассировки WCF. Рад, что вы исправили свою проблему. – Spence