2

我正在尝试将我开发用于与 NetSuite 交互的几个旧集成工具更新到最新的 Web 服务端点,该端点位于以下 URL:

https://webservices.netsuite.com/wsdl/v2018_1_0/netsuite.wsdl

我做通常的旅行来添加 WSDL:

  1. 项目
  2. 添加服务参考
  3. 先进的
  4. 添加网络参考
  5. 在“地址”中输入 WSDL URL

但是,我一直收到以下消息:

下载“ https://webservices.netsuite.com/wsdl/v2018_1_0/netsuite.wsdl/_vti_bin/ListData.svc/$metadata ”时出错。请求被中止:无法创建 SSL/TLS 安全通道。

我已经从浏览器毫无问题地下载了 WSDL 文件,并尝试使用 wsdl.exe,包括文件和 URL。通过 URL,我得到与上面相同的消息。使用该文件,我得到以下信息:

错误:无法从命名空间“urn:platform_2018_1.webservices.netsuite.com”导入绑定“NetSuiteBinding”。

  • 无法导入操作“登录”。
  • 缺少元素“urn:messages_2018_1.platform.webservices.netsuite.com:applicationInfo”。

我发现的一些建议包括将 WSDL 中列出的所有 XSD 文件下载为导入,并在运行 wsdl.exe 时将它们列出。这导致了一个不同的错误:

错误:无法从命名空间“urn:platform_2018_1.webservices.netsuite.com”导入绑定“NetSuiteBinding”。

  • 无法导入操作“登录”。
  • 缺少数据类型“urn:types.core_2018_1.platform.webservices.netsuite.com:RecordType”。

我认为这可能是 TLS 问题,并且可能我的机器没有使用正确的版本,但我已经检查并更新了 IE 和注册表设置以强制使用 TLS 1.2,但没有得到积极的结果。我还认为我的机器可能有问题,所以我将文件和 wsdl.exe 从我的 Win 7 Pro 机器发送到 Win 10 Pro 机器。那里的结果相同。

我在这里几乎不知所措,因为我上次下载 NetSuite wsdl 时没有遇到这些问题,我什至尝试过旧的 WSDL 以获得相同的结果。我现在很迷茫。

4

2 回答 2

0

好的,我想我已经弄清楚了。我相信,由于 NetSuite 推动强制使用 TLS 1.2,这最终成为了原因。我安装了 Visual Studio 2017 并制作了一个测试控制台应用程序,并从那里尝试下拉 Web 服务。它成功了。因此,我只能假设 VS 2012 无法使用 TLS 1.2 进行通信,因此导致尝试生成 NetSuite Web 服务失败,而 VS 2017可以使用 TLS 1.2,这就是它成功的原因。猜猜我需要将我所有的项目移植到 VS 2017 中并从现在开始使用它。

于 2018-06-11T17:44:02.783 回答
0

您的项目使用的是什么版本的 .net?我相信 .net 4.6.1 之前,默认情况下 Tls 1.2 不可用。

于 2018-06-07T22:43:38.673 回答