我无法通过 Suitetalk Web 服务访问沙盒环境。我正在使用 2016_2 WSDL。我曾尝试使用最新版本的 WSDL,但这并没有帮助。
我在现有的测试应用程序上使用它,该应用程序现在停止工作。我仍然可以通过 Suitetalk 访问 NetSuite 生产环境。我收到的错误:“底层连接已关闭:发送时发生意外错误。”
该错误发生在对 API 的任何调用上。到目前为止,我还没有在网上看到其他人有类似的问题。
任何帮助将不胜感激,在此先感谢您。
您的问题可能是 TLS 1.2,但您的客户端仅支持 TLS 1.0 或 1.1
此更改由 Netsuite 进行,根据他们在 10 月 7 日发布的消息,但我猜它已被移回,因为我的一个客户最初在周末遇到了问题,我不得不急于修复补丁。
如果您使用的是 Dotnet,请尝试以下静态属性:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
NetSuite 最近实施了一种新的 URL 格式来访问他们的 SuiteTalk Web 服务。新 URL 以您的帐号开头。旧网址,例如
https://webservices.netsuite.com/services/NetSuitePort_2016_2
继续工作,但会遇到“路由问题”。NetSuite 建议为您的 Web 参考采用一种新格式,如下所示:
https://{your_acct_number}.suitetalk.api.netsuite.com/services/NetSuitePort_2016_2
我最近遇到了我的 SuiteTalk 应用程序可以成功登录的问题,但随后无法运行任何 Web 方法,例如 service.search() 而不会出现错误。这些错误非常具有误导性,例如“连接超时”。
完成与 NetSuite 的支持电话后,我编写了使用最新 URL 格式连接 SuiteTalk 应用程序的正确方法。你可以在这里找到那篇文章:
https://followingnetsuite.wordpress.com/2018/05/10/suitetalk-urls-demistified/
您可能需要配置正确的端点。
有几件事要记住。
如果您使用的是 Java 客户端,则需要执行以下操作:
NetSuiteServiceLocator service = new NetSuiteServiceLocator();
if(overrideEndPoint != null) service.setNetSuitePortEndpointAddress(overrideEndPoint);
端点过去很简单:
例如https://webservices.sandbox.netsuite.com/services/NetSuitePort_2010_2
,日期对应于您的 SuiteTalk 版本
但现在您需要为您的帐户和环境查找数据中心
在进行沙盒查找时,您需要针对https://webservices.sandbox.netsuite.com
而不是针对运行 getDataCenterURLs 操作https://webservices.netsuite.com