нужно ли мне устанавливать WSE 3 для Visual Studio 2010

#wcf

#wcf

Вопрос:

Я пытаюсь добавить ссылку на службу в VS 2010 (WCF). Веб-служба использует WS-Policy, и когда я использую службу, я получаю некоторый прокомментированный код в моем разделе app.confing customBindings:

 <!--    WsdlImporter encountered unrecognized policy assertions in ServiceDescription 'http://ws.TheirSite.com/WebServices/ResellerApiV1.wsdl':    -->
<!--    <wsdl:binding name='ResellerApiBinding'>    -->
<!--        <ns0:SupportingTokens xmlns:ns0="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">..</ns0:SupportingTokens>    -->
  

и, похоже, я не могу создать заголовок SOAP с информацией о UsernameToken.

Эти разделы с комментариями связаны с тем, что мне нужно установить WSE 3.0 или это входит в состав платформы 4.0 Framework?

РЕДАКТИРОВАТЬ: Спасибо за комментарии. Хост перезвонил мне и сказал, что мне нужно добавить этот тег безопасности, чтобы решить эту проблему (* обратите внимание, что enableUnsecuredResponse доступен только в рамках платформы 4.0):

 <security authenticationMode="UserNameOverTransport" enableUnsecuredResponse="true" />
  

По-видимому, прокомментированный xml в app.config вызван инструментом VisualStudio WsdlImporter (svcutil.exe ?), который не может обработать политику SupportingTokens, но добавление вышеупомянутой директивы вставит UsernameToken WS-Security в заголовок SOAP.

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

1. WSE устарел. Не используйте его, если у вас вообще нет других вариантов. Ваша проблема может быть связана с тем, что WSE не реализует окончательные стандарты WS-Policy (это был промежуточный продукт).

2. Ага, спасибо. У меня он не установлен, и когда я добавляю ссылку на службу, я получаю этот раздел кода с комментариями в моем app.config. Есть идеи, почему? Спасибо

3. как я уже сказал, держу пари, что это устаревшие политики, которые не соответствуют стандартам.

4. Опубликуйте свой токен поддержки, определяющий WSDL. Это имя пользователя с переработанным паролем?

Ответ №1:

Недавно мне пришлось поддерживать WSE 3.0 в Visual Studio 2010 (не по выбору), поскольку у нас были некоторые приложения .NET 2.0, которые (по нескольким причинам) мы не можем обновить, и которым необходимо использовать WSE 3.0 по некоторым «нестандартным» причинам.

Вы можете заставить Visual Studio использовать старый импортер для создания прокси-серверов WSDL, но вам нужно установить WSE 3.0 и внести некоторые изменения в конфигурацию. Все это описано в двух сообщениях в блоге здесь:

http://www.sanderstechnology.com/?p=10648

http://www.sanderstechnology.com/?p=10659

Ответ №2:

Усовершенствования веб-службы 3 (WSE 3) официально не поддерживаются с Visual Studio 2008. Причина в том, что Microsoft хочет, чтобы вы перенесли свой код в WCF.

Следуйте приведенному ниже блогу, чтобы включить WSE 3.0 в Visual Studio 2012, 2010 и 2008

http://digantakumar.com/2010/06/04/wse-3-in-visual-studio-2008-and-2010/