我有一个使用 TBA 通过 SuiteTalk 连接到 NetSuite 实例的应用程序。已生成消费者 ID 和令牌 ID,使用了“https://webservices.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl”,但是当我尝试任何 SuiteTalk 调用时,我收到“405 方法不允许”。我有一个 .Net Framework 4.8 应用程序使用相同的 ID 工作正常。任何人都能够在任何 .Net Core 版本中使其工作吗?
strURL = "https://webservices.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl";
EndpointAddress myEndpoint = new EndpointAddress(strURL);
NetSuitePortTypeClient wcfClientNetSuite = new NetSuitePortTypeClient(myBindingNetSuite, myEndpoint);
getDataCenterUrlsResponse DCUrlsResp = new getDataCenterUrlsResponse();
wcfClientNetSuite.getDataCenterUrls(
null,
null,
null,
null,
NetSuiteAcct,
out DCUrlsResult
);
我研究了相关资料,找到了问题的原因。
升级到.NET CoreUrl属性消失了。
SuiteTalk 的端点现在是特定于帐户的。几年前,每个人都打电话给 https://webservices.netsuite.com。然后,将数据中心(Na1、Na2 等)添加到某处。现在,端点看起来像这样:
https://123456.suitetalk.api.netsuite.com
123456 替换为您的帐户 ID。该文档告诉您指向
https://webservices.netsuite.com 上的 WSDL,然后调用 getDataCenterUrls 以使用 NetSuiteService 上的 Url 属性获取实际端点集。不幸的是,NetSuitePortTypeClient不包含Url 属性。
这是文档。