0

我有一台可以访问我的网站 (CRM) 的客户端电脑。客户端 PC 将 API 工具包作为后台服务运行,并通过 SOAP 调用进行访问,只需标准 Web 参考和一些服务器端方法来调用 API 工具包的方法就可以了。

在我的本地 IIS 上运行 Web 应用程序时,一切都很好。web.config 中的引用将地址指向 localhost:8080,这是服务器的地址。为所有客户端提供具有动态服务 url 的自定义 web.config 不是一种选择。我尝试设置 url 属性,以便在启动 Web 应用程序时检索客户端计算机的主机名并更改服务引用的 url 属性,但是,这只有在所有计算机都在公司域上时才有效。以下参考资料适用于我的本地电脑,当从服务器而不是我的本地开发 IIS 运行时,手动将其更改为我的主机名失败。

<applicationSettings>
<CRMIntegration.Properties.Settings>
  <setting name="CRMIntegration_AgentBridgeService_WebserviceAgentBridgeService"
    serializeAs="String">
    <value>http://localhost:8080/AgentBridge</value>
  </setting>
</CRMIntegration.Properties.Settings>

尽管有几种不同的方法尝试将服务映射到正确的客户端,但它仍然无法工作。

(我在想):创建一个方法或函数来设置客户端 PC 的 Web 服务的正确路径,去掉 web.config 引用并编写一个扩展 Web 引用类来覆盖生成的 reference.cs 获取它的位置网址属性。

我已经看到几个 SaaS CRM 使用完全相同的 API 工具包完成此操作的示例,所以我知道它可以完成。在搜索了几天后,我不知道该往哪个方向看。

任何帮助表示赞赏。

4

1 回答 1

0

解决方案比预期的要容易。我有两条路线:在 api 中使用带有 xml 的 jquery 或未记录的查询字符串。我选择了查询字符串,一切都很好。

于 2012-08-01T20:08:50.943 回答