【问题标题】:FedEx WSDL help on ASP.NET (VB) Web AppFedEx WSDL 对 ASP.NET (VB) Web 应用程序的帮助
【发布时间】:2015-11-20 10:35:08
【问题描述】:

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

我对如何在“生产环境”和“测试环境”之间轻松切换有点困惑,需要一些建议。

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

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

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

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

我知道出于测试目的,我需要使用“gatewaybeta.fedex.com”网址和我的 FedEx“测试凭据”而不是我的“生产凭据”,但我很困惑它是如何工作的以及我需要在哪里交换通过端点 url。

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

导入后,第二个远程服务器上的 WSDL 文件是否甚至需要或用于我的应用程序对 FedEx Web 服务的实时调用,还是现在可以将其删除?

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

最终我想做的是创建一个简单的 FedEx 管理网页,上面有一个基本表单,我可以在其中输入默认的 FedEx 跟踪号和/或货件详细信息,然后从 TEST 和PRODUCTION 并让 aspx.vb 代码处理 url/凭据更改,因此我不必手动更改 wsdls 和 webreferences 以及 web.config 文件键等。

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

谢谢。

【问题讨论】:

    标签: vb.net asp.net-web-api wsdl fedex


    【解决方案1】:

    从测试切换到生产

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

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

    如何添加网络参考

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

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

    WSDL 和 discomap 文件

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

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

    【讨论】:

    • 感谢您的回复和有用的信息。从您所说的听起来好像一旦您添加了 Web 引用,远程服务器上的原始 WSDL 文件就是多余的,并且使用该服务所需的所有信息现在都在项目中......正确吗?
    • 关于将 WSDL 文件本地放置在您的开发计算机上,我认为这同样适用......它只需要用于“添加 Web 引用”过程并且一旦完成完成后可以删除,不需要上传到实时服务器,因为所有信息都已经在项目中...正确吗?
    • 最后,要绝对清楚,服务的 web.config 端点 url 会覆盖 discomap 和导入的 WSDL 文件中的端点 url?
    • 你是明星!谢谢!
    【解决方案2】:

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

    因此,如果他们选择“测试”,则为 TrackService.Url = "gatewaybeta.fedex.com",如果选择“生产”,则为 TrackService.Url = "gateway.fedex.com"。

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

    您也必须记住交换密钥/密码/meternumber 凭据。

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2010-09-28
      • 1970-01-01
      相关资源
      最近更新 更多