FedEx WSDL 帮助 ASP.NET (VB) Web App

FedEx WSDL help on ASP.NET (VB) Web App

我的网络应用程序目前使用旧的 FedEx WSDL API 进行费率和跟踪,我现在必须测试它以适应 2016 年 1 月 FedEx 的 SHA-2 更改。

我对如何在 "Production Environment" 和 "Test Environment" 之间轻松切换感到有点困惑,需要一些建议。

我将首先解释 Web 服务当前是如何集成到我的应用程序中的,以便您了解我的问题的上下文:

我最初将 FedEx WSDL 文件上传到我的第二台服务器(不是网站应用程序所在的实际服务器),然后 "Added Web Reference" 上传到我项目中的远程 url。这可能不是必需的,可能有更简单的方法(例如本地),但因为我不完全理解它是如何工作的,所以这是当时对我来说最简单的方法。

这在我的项目中创建了一个 "App_WebReferences" 文件夹,并在其中创建了一个 WSDL 文件和一个用于跟踪和费率服务的 discomap 文件。

我的 Web.config 文件中也有两个 key/value 对指向这些 Web 引用和 gateway.fedex.com。我不记得是我手动创建的还是 WSDL 导入自动创建的。

我知道出于测试目的,我需要使用 "gatewaybeta.fedex.com" url 和我的 FedEx "Test Credentials" 而不是我的 "Production Credentials" 但我很困惑它是如何工作的并且我到底需要在哪里交换端点 urls.

例如,我可以只更改 Web.config 文件中的 url 还是我还必须在我的第二个远程服务器上的 WebReference 和原始导入的 WSDL 文件中更改它?

导入后,我的应用程序对 FedEx Web 服务的实时调用是否需要或使用第二个远程服务器上的 WSDL 文件,或者现在可以删除它吗?

discomap 文件引用了我第二台服务器上的原始 wsdl 文件位置,那么它是如何工作的,如果我从我的第二台服务器上删除 wsdl 文件会发生什么情况?

最终我想做的是创建一个简单的管理 FedEx 网页,上面有一个基本表格,我可以在其中输入默认的 FedEx 跟踪号码 and/or 货件详细信息,然后 select 来自TEST 和 PRODUCTION 之间的下拉列表,并让 aspx.vb 代码处理 url/credential 更改,这样我就不必手动更改 wsdls 和 webreferences 以及 web.config 文件键等。

希望有人能为我澄清这一点,让我走上正轨!

谢谢。

从测试切换到生产

  1. 如果您尚未创建生产凭据,请转到 FedEx Web Services 页面,单击 "Move to Production" 并按照说明进行操作。您的组织需要一个 FedEx 客户帐户,您将需要该信息。
  2. 在您的 Visual Studio 项目中,更改 Properties\Settings.settings 和 App.config/Web.config 中的 URL。 (如果您使用 UI 更改 Settings.settings,配置文件将自动更新。)
  3. 更新项目以使用您的生产凭据。

考虑利用 config transformations 将您的测试和生产凭据保存在不同的配置文件中。

如何添加网络引用

您所做的(将 FedEx 的 WSDL 放在您自己的服务器上,以便您可以使用 http link 添加 Web 引用)很好,但比必要的工作多了一点。

下次您需要这样做时,只需将 WSDL 保存在您自己的计算机上,当您添加 Web 引用时,使用本地文件路径(例如:C: \Users\Desktop\RateService.wsdl).

WSDL 和 discomap 文件

这些文件仅供Visual Studio用于创建代理类。在实际服务调用期间不引用它们。您可以删除它们,但为了将来参考,请确保它们是您项目的一部分。

我认为指向不同服务器上的 WSDL 的 discomap 没有问题,即使该地址不再存在也是如此。我认为只有在您要更新 Web 参考(右键单击 > 更新 Web 参考)时才使用此参考,您不应该这样做,因为您应该从 FedEx 的开发人员站点下载最新的 WSDL。

仅供参考:我发现在生产环境和测试环境端点 URL 和凭据之间切换的最简单方法就是根据管理员用户的删除更改页面代码隐藏中的服务 class 对象值-下拉列表选择。

因此,如果他们选择 "Test",则为 TrackService.Url = "gatewaybeta.fedex.com",如果选择 "Production",则为 TrackService.Url = "gateway.fedex.com"。

这会覆盖 web.config 和 WSDL 文件中的端点。

您还必须记得交换 key/password/meternumber 凭据。