背景:我的任务是创建单一登录解决方案,将内部用户重定向到供应商的Web应用程序。我将其设置为ASP.Net项目,该项目将调用供应商提供的Web服务。此服务将返回用于登录供应商站点的URL和令牌。所有这一切都要安全地完成。
问题:使用Visual Studio的 添加Web引用 对话框下载WSDL并生成所需的代理类时,出现以下错误:
下载时出错 的 'https://服务器:端口/文件夹/服务WSDL'。该 底层连接已关闭:a上发生意外错误 发送。身份验证失败,因为远程方已关闭 运输流。元数据包含不能的引用 解决: 的 'https://服务器:端口/文件夹/服务WSDL'。一个 发出HTTP请求时发生错误 https://server:port/folder/Service?wsdl。这个 可能是由于未配置服务器证书 在HTTPS情况下正确使用HTTP.SYS。这也可能是由 客户端和服务器之间的安全绑定不匹配。 基础连接已关闭:发生意外错误 发送。身份验证失败,因为远程方已关闭 运输流。如果在当前解决方案中定义了服务, 尝试构建解决方案并再次添加服务引用。
除了此错误, 添加引用 按钮显示为灰色,这使我无法添加引用并生成代理类。
该项目在.Net Framework 4.0下运行。我已正确下载并安装了必要的客户端密钥/证书。我已将IP地址和服务器名称添加到hosts文件中,并将其添加到代理绕过列表中。我可以浏览到端点并在IE和VS的Web浏览器中查看WSDL。我甚至可以在VS中的 添加Web引用 对话框中查看WSDL。在每种情况下,我都会提示我选择要使用的证书。
我无法访问Web服务本身或它所在的服务器。
我在Google上花了很多时间,但未能找到解决方案。有什么想法吗?
答案 0 :(得分:5)
通过引用URL file:\\\drive:\pathname\filename.wsdl
下载WSDL并通过 添加Web引用 对话框将其拉入VS来解决此问题。