我正在尝试将一个安全的Web服务添加到(C#)项目作为参考,但VS提出了以下错误:
无法转换类型的COM对象 'System .__ ComObject'到接口类型 'EnvDTE.IVsExtensibility'。这个 操作失败,因为 QueryInterface调用COM 与IID接口的组件 '{3C536122-57B1-46DE-AB34-ACC524140093}' 由于以下错误而失败:否 支持这样的接口(例外 来自HRESULT:0x80004002 (E_NOINTERFACE))。
任何人都有任何想法,为什么会这样?
答案 0 :(得分:1)
找到以下诊断here。最初由Steven Cheng回答。希望这会有所帮助。
问题描述:
尝试使用Visual Studio 2005中的“添加Web引用”功能在同一Web服务应用程序中针对多个Web服务端点(asmx文件)创建Web服务客户端代理。如果Web服务应用程序受客户端身份验证保护,这将提示客户端输入凭据,IDE将报告以下异常:
“无法将'System .__ ComObject'类型的COM对象强制转换为接口类型'EnvDTE.IVsExtensibility'。此操作失败,因为QueryInterface调用COM组件上的IID为”{3C536122-57B1-46DE-AB34“的接口-ACC524140093}由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))。“
原因:
这是一个纯Visual Studio 2005特定问题,在处理将提示输入客户端凭据的服务端点时,内部设计时COM对象存在问题。
目前正在进行的工作:
访问外部webbrowser中的服务描述/ WSDL文档,并将WSDL文档保存到本地文件系统。并在Visual Studio 2005中针对本地保存的WSDL文档添加Web引用。
使用.net框架中的WSDL.exe命令实用程序在外部创建Web服务客户端代理。