2009-03-01 5 views
2

Я пытаюсь отладить службу 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> 

ответ

8

взглянуть на WCF Tracing. Если вы запустите это на своем хосте службы, он даст вам отдельные вызовы WCF, которые происходят, и вам должно быть достаточно, чтобы узнать, какая часть вашей конфигурации была исправлена.

Я нашел конкретно проблемы с подключением, что это единственный способ устранить причины.

MSDN on WCF Tracing your application

A good tutorial to help you understand the MSDN

+1

Спасибо, очень полезно. Обнаружена ошибка: не было канала, который мог бы принять сообщение с действием «http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence». Я возьму, если отсюда. – cdonner

+0

И получается, что это проблема DNS. Моя рабочая станция почему-то не была в DNS, а поиск на сервере для конечной точки обратного вызова не удался. Как только я это исправил, это сработало. – cdonner

+0

ура для проверки точки, устранение проблемы подключения с помощью трассировки WCF. Рад, что вы исправили свою проблему. – Spence

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