使用ASP.net Web App访问客户端PC上托管的Web服务
问题描述:
我有访问我的网站(CRM)的客户端PC。客户端PC正在运行一个API工具箱作为后台服务,并通过SOAP调用访问,没有什么棘手的标准Web引用和一些服务器端方法来调用API工具箱的方法。使用ASP.net Web App访问客户端PC上托管的Web服务
在本地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引用类以覆盖生成的引用的位置.cs获取它的url属性。
我已经看过几个SaaS CRM完全相同的API工具包的例子,所以我知道它可以做到。在搜索了几天之后,我无法确定寻找什么方向。
任何帮助表示赞赏。
答
该解决方案比预期的更容易。我有两条路线:在api中使用带有xml的jquery或未公开的查询字符串。我选择了查询字符串,一切都很好。
我发现这篇文章似乎沿着我正在处理的内容。 [链接] http://stackoverflow.com/questions/9412776/request-timeout-error-on-calling-wcf-webservice-from-webservice-client-on-localh然而,我不明白如何服务参考与web引用会影响这一点,从asp.net 2.0 vs 3.5+或许他们处理不同。我会试一试,让问题开放,除非它解决了我的问题。 – SuburbanDefender 2012-07-23 17:53:55