Не удается установить связь со службой WCF, запущенной на отдельном компьютере, используя net.tcp

#c# #wcf #tcp

#c# #wcf #tcp

Вопрос:

Я не могу установить связь с другим компьютером, который находится в моей локальной сети, через соединение net.tcp, если я не отключу режим безопасности. Если я установлю режим безопасности на «Нет», связь будет работать нормально. При настройке конфигурации модели сервиса, указанной ниже, на обоих концах провода я получаю сообщение об ошибке «Сервер отклонил учетные данные клиента».

Служба WCF размещается в службе Windows на удаленном компьютере. Из того, что я видел в различной документации, моя конфигурация настроена правильно. Есть идеи о том, что я могу делать неправильно? Приветствуются дикие предложения.

 <system.serviceModel>
    <bindings>
        <netTcpBinding>
            <binding name="NetTcpBinding_ITcpService">              

            <security mode="Transport">
                <transport clientCredentialType="Windows" />                  
            </security>            

            <!--Communication works if I do this
            <security mode="None" />
            -->                    
            </binding>
        </netTcpBinding>
    </bindings>
    <client>
        <endpoint address="net.tcp://199.198.3.5:8520/TcpService" 
            binding="netTcpBinding"
            bindingConfiguration="NetTcpBinding_ITcpService" 
            contract="TcpServiceReference.ITcpService"
            name="NetTcpBinding_ITcpService">                
        </endpoint>
    </client>
</system.serviceModel>
  

Комментарии:

1. Принадлежат ли обе машины одному домену Windows?

2. Нет, оба компьютера не находятся в домене. Они оба являются членами одной рабочей группы.

3. Убедитесь, что ваша служба запускается от имени учетной записи администратора, для этого вам нужно будет открыть окно служб, найти свою службу, щелкнуть правой кнопкой мыши и нажать «Свойства», оттуда перейти к «Войти в систему» и убедиться, что он использует учетную запись администратора.

4. Джонатан — Я просмотрел страницу диалога, на которую вы ссылаетесь. Я не вижу ни одного поля, указывающего, является ли это учетной записью администратора, и я не вижу никакого способа запустить службу от имени учетной записи администратора. В информации для «Этой учетной записи» указано, что это «Сетевая служба». Я прочитал, что могу настроить запуск службы от имени администратора через запись в файле манифеста. Я попробую это, когда у меня будет такая возможность.