Ошибка WCF: требуется потоковая защита на http://www.w3.org/2005/08/addressing/anonymous,, но контекст безопасности не был согласован - PullRequest
2 голосов
/ 28 мая 2009

У нас есть служба Windows, которую мы пытаемся использовать в качестве хоста WCF для приложения WPF. Он отлично работает в процессе разработки, но когда мы попытались перейти к нашей производственной среде, у нас не было ничего, кроме проблем. Читая посты других, мы выяснили, как включить ведение журнала WCF, и это очень помогло. Оказалось, что наши привязки безопасности на сервисе и клиенте не совпадают. Мы настроили их на использование безопасности Windows, но все же не повезло, теперь мы пытаемся установить режим безопасности на «Нет», но он все еще не работает. Вот раздел привязок нашего конфигурационного файла сервиса:

<system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="netTcp">
          <security mode='None'>
          </security>
        </binding>
      </netTcpBinding >
    </bindings>
    <services>

      <service name="CompanyService">
        <endpoint
          address= "our.url.com/CompanyService"
          binding="netTcpBinding"
          contract="CompanyServices.ICompanyService" />
      </service>
    </services>
  </system.serviceModel>

Вот раздел serviceModel конфигурации нашего клиентского приложения:

  <system.serviceModel>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding_Config" >
          <security mode="None">
          </security>
        </binding>

      </netTcpBinding>
    </bindings>
    <client>
      <endpoint address="our.url.com/CompanyService" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_Config" contract="CompanyServiceProxy.ICompanyService" name="NetTcpBinding_ICompanyService" />
    </client>
  </system.serviceModel>

Если мне нужно предоставить дополнительную информацию, пожалуйста, скажите мне, что мне нужно предоставить.

Спасибо

1 Ответ

0 голосов
/ 28 мая 2009

Стандартное связывание net.tcp использует учетные данные Windows по умолчанию, и для них действительно требуется, чтобы клиент и служба находились в одном домене Windows. Это тот случай, здесь ??

ОК, извините, вы упомянули о безопасности = Нет (ваши данные не были правильно отформатированы, поэтому я видел только часть реальной конфигурации).

Я полагаю, что ваша проблема действительно заключается в используемых адресах:

address= "our.url.com/CompanyService"

При использовании привязки net.tcp вы должны указать это перед адресом, поэтому измените это как на клиенте, так и на сервере:

address= "net.tcp://our.url.com/CompanyService"

Кроме того, я не совсем понимаю ваш заголовок: в нем упоминается «потоковая передача» - вы указывали режим потоковой передачи в любом месте? В вашем конфиге или в ваших сервисных контрактах?

Марк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...