我有訪問我的網站(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工具包的例子,所以我知道它可以做到。在搜索了幾天之後,我無法確定尋找什麼方向。
任何幫助表示讚賞。
我發現這篇文章似乎沿着我正在處理的內容。 [鏈接] 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