1

背景:我的任务是创建一个单点登录解决方案,它将我们的内部用户重定向到供应商的 Web 应用程序。我已将其设置为 ASP.Net 项目,该项目将调用供应商提供的 Web 服务。该服务将返回一个 URL 和一个用于登录供应商站点的令牌。所有这一切都必须安全地完成。

问题:当使用 Visual Studio 的Add Web Reference对话框下载 WSDL 并生成所需的代理类时,我收到以下错误:

下载“https://server:port/folder/Service?wsdl”时出错。底层连接已关闭:发送时发生意外错误。身份验证失败,因为远程方已关闭传输流。元数据包含无法解析的引用:“https://server:port/folder/Service?wsdl”。向https://server:port/folder/Service?wsdl发出 HTTP 请求时出错 . 这可能是由于在 HTTPS 情况下未使用 HTTP.SYS 正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配造成的。底层连接已关闭:发送时发生意外错误。身份验证失败,因为远程方已关闭传输流。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

除了这个错误,添加引用按钮是灰色的,阻止我添加引用和生成代理类。

该项目在 .Net Framework 4.0 下运行。我已正确下载并安装了必要的客户端密钥/证书。我已将 IP 地址和服务器名称添加到主机文件中,并将两者都添加到代理绕过列表中。我可以浏览到端点并在 IE 和 VS 的 Web 浏览器中查看 WSDL。我什至可以在 VS 的Add Web Reference对话框中查看 WSDL。在每种情况下,都会提示我选择要使用的证书,我会这样做。

我无权访问 Web 服务本身或它所在的服务器。

我在谷歌上花了很多时间,但一直没有找到解决办法。有任何想法吗?

4

1 回答 1

6

通过下载 WSDL 并通过引用 URL 通过Add Web Reference对话框将其拉入 VS 来解决此问题file:\\\drive:\pathname\filename.wsdl

于 2012-04-04T18:24:12.893 回答