我是否需要为Visual Studio 2010安装WSE 3

时间:2011-05-16 23:35:42

标签: wcf

我正在尝试在VS 2010(WCF)中添加服务引用。 Web服务使用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>    -->

我似乎无法使用UserNameToken信息创建SOAP标头。

这些注释部分是因为我需要安装WSE 3.0还是4.0 Framework附带的?

编辑:感谢您的评论。主持人回复我说我需要添加此安全标记来解决此问题(*请注意,enableUnsecuredResponse仅在4.0 Framework中可用):

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

显然,app.config中注释的xml是由VisualStudio WsdlImporter工具(svcutil.exe?)引起的,该工具无法处理SupportingTokens策略,但添加上述指令会将WS-Security UsernameToken插入SOAP头

2 个答案:

答案 0 :(得分:2)

最近,我不得不在Visual Studio 2010中支持WSE 3.0(不是选择),因为我们有一些.NET 2.0应用程序(由于某些原因)我们无法升级,哪些需要使用WSE 3.0出于某些“非标准”原因。

您可以让Visual Studio使用旧的Importer生成WSDL代理,但您需要安装WSE 3.0并对配置进行一些修改。这些都记录在这里的两篇博文中:

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

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

答案 1 :(得分:0)

自Visual Studio 2008以来,Web服务增强功能3(WSE 3)未得到正式支持。原因是Microsoft希望您将代码迁移到WCF。

按照以下博客在Visual Studio 2012,2010和2008中启用WSE 3.0

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