2011-05-16 82 views
2

我试图在VS 2010(WCF)中添加服务引用。 Web服务使用的WS-Policy,当我消费的服务我得到一些注释代码在我app.confing customBindings部分:我是否需要为Visual Studio 2010安装WSE 3

<!-- 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框架内提供):

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

显然在App.config注释的XML是由无法处理SupportTokens策略的VisualStudio WsdlImporter工具(svcutil.exe?)导致,但添加上述指令会将WS-Security UsernameToken插入到SOAP标头中。

+2

WSE已经过时了。除非你没有其他选择,否则不要使用它。您的问题可能是由于WSE没有实施最终的WS-Policy标准(这是一个临时产品)。 – 2011-05-16 23:37:23

+0

啊哈,谢谢。我没有安装它,当我添加服务引用时,我在app.config中获得了该评论的代码段。任何想法为什么?谢谢 – 2011-05-16 23:42:37

+0

就像我说过的,我敢打赌那些过时的政策不符合标准。 – 2011-05-16 23:50:11

回答

2

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

您可以让Visual Studio使用旧的导入程序生成WSDL代理,但需要安装WSE 3.0并对配置进行一些修改。这一切都记录在这里有两个博客文章:

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

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

相关问题