2012-07-23 57 views
0

我有訪問我的網站(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工具包的例子,所以我知道它可以做到。在搜索了幾天之後,我無法確定尋找什麼方向。

任何幫助表示讚賞。

+0

我發現這篇文章似乎沿着我正在處理的內容。 [鏈接] 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

回答

0

該解決方案比預期的更容易。我有兩條路線:在api中使用帶有xml的jquery或未公開的查詢字符串。我選擇了查詢字符串,一切都很好。