2009-04-14 25 views
0

我想添加一個安全的Web服務的(C#)項目作爲參考,但VS自帶了以下errror:不可能添加安全Web服務爲VS2005項目的引用

Unable to cast COM ob ject of type 'System.__ComObject' to interface type 'EnvDTE.IVsExtensibility'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3C536122-57B1-46DE-AB34-ACC524140093}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

任何人有任何想法,爲什麼這是?

回答

1

發現以下診斷here。最初由Steven Cheng回答。希望這可以幫助。

問題描述:

當嘗試使用「添加Web引用」功能在Visual Studio 2005創建對在同一個web服務應用程序的多個Web服務端點(ASMX文件)Web服務客戶端代理。而且,如果Web服務應用程序是通過客戶認證,將客戶端提示輸入憑據保護,該IDE將報告以下異常:

「無法投型‘系統.__ ComObject’到接口類型「EnvDTE的COM對象。由於以下錯誤導致IIC「{3C536122-57B1-46DE-AB34-ACC524140093}」接口的COM組件上的QueryInterface調用失敗:此類接口不支持(異常來自HRESULT:0x80004002( E_NOINTERFACE))「。

原因:

這是一個純粹的Visual Studio 2005中的具體問題,INTERAL設計時COM對象與服務端點,將提示輸入客戶端憑證打交道時有問題。

當前解決方法:

  1. 訪問外部web瀏覽器的服務描述/ WSDL文檔並保存WSDL文檔到本地文件系統。並在Visual Studio 2005中添加針對本地保存的WSDL文檔的Web引用。

  2. 使用.net框架中的WSDL.exe命令實用程序在外部創建Web服務客戶端代理。