2011-05-16 128 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

相關問題