2009-08-28 2 views
0

У меня есть служба netTcp WCF, работающая в службе windows на удаленной машине. Служба окон работает как пользователь mydomain\u2Отладка netTcp привязки WCF

Файл .config для службы WCF окна размещается в

<security mode="None"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="None" /> 
</security> 

Теперь, когда я бегу

svcutil.exe http://wcfhostmachine:8000/MyWCFService?wsdl

Клиент output.config имеет следующий порт безопасности ион:

<security mode="None"> 
    <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
    <message clientCredentialType="Windows" /> 
</security> 

Они разные. ПОЧЕМУ ??? СЛЕДУЕТ ИЗМЕНИТЬ КЛИЕНТА, ЧТОБЫ СОХРАНИТЬ СЕРВЕР?

В то время как я все еще могу отправить инструкции к WCF службы, и они обрабатываются, когда Visual Studio пытается сделать шаг в WCF код, работающий на удаленном хосте, я получаю печально:

Невозможно автоматически debug '....'. Не удалось подключиться к серверной машине. Удаленный отладчик Visual Studio на целевом компьютере не может подключиться к этому компьютеру. Убедитесь, что DNS правильно настроен на целевом компьютере.

Излишне говорить, что DNS в порядке.

Единственная причина, по которой я могу понять, почему я столкнулся с этой ситуацией, заключается в том, что моя Visual Studio работает как mydomain\u1, а служба работает на удаленном компьютере как mydomain\u2.

Неужели кто-то сталкивался/решал этот вопрос в прошлом?

ПОДРОБНЕЕ

Ниже мой App.config для службы узла. Могу ли я столкнуться с этой проблемой, потому что у меня нет конечной точки mex?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service name="my.Indexer" behaviorConfiguration="IndexerServiceBehavior"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://hostmachine:8000/Indexer"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="net.tcp://hostmachine:9000/Indexer" 
        binding="netTcpBinding" 
        bindingConfiguration="Binding1" 
        contract="my.IIndexer" /> 
     </service> 
    </services> 
    <bindings> 
     <netTcpBinding> 
     <binding name="Binding1" 
        hostNameComparisonMode="StrongWildcard" 
        sendTimeout="00:10:00" 
        maxReceivedMessageSize="65536" 
        transferMode="Buffered" 
        portSharingEnabled="false"> 
      <security mode="None"> 
      <transport clientCredentialType="None" /> 
      <message clientCredentialType="None" /> 
      </security> 

     </binding> 
     </netTcpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="IndexerServiceBehavior"> 
      <serviceMetadata httpGetEnabled="true" httpGetUrl=""/> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
</configuration> 

ответ

2

Они одинаковы - все, что имеет значение в этом случае, - это режим = «Нет» на обоих концах. Остальное внутри тега <security> совершенно не имеет значения, если вы установили режим на None.

Что создает svcutil.exe - это всего лишь системные значения по умолчанию.

Marc

+0

Полезно знать - спасибо. Теперь я оставлю вопрос открытым, чтобы узнать, могут ли другие подслушивать, почему я не могу отлаживать еще ... – Matt