我正在尝试在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头
答案 0 :(得分:2)
最近,我不得不在Visual Studio 2010中支持WSE 3.0(不是选择),因为我们有一些.NET 2.0应用程序(由于某些原因)我们无法升级,哪些需要使用WSE 3.0出于某些“非标准”原因。
您可以让Visual Studio使用旧的Importer生成WSDL代理,但您需要安装WSE 3.0并对配置进行一些修改。这些都记录在这里的两篇博文中:
答案 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/