我有一台访问我网站(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获取它的url属性的位置。
我已经看到过几个SaaS CRM使用完全相同的API工具包完成的示例,所以我知道它可以完成。在搜索了几天后,我不知道要查看哪个方向。
感谢任何帮助。
答案 0 :(得分:0)
解决方案比预期的要容易。我有两个路由:在api中使用带有xml的jquery或一个未记录的查询字符串。我选择了querystring,一切都很好。