2014年1月17日 星期五

ASP.NET MVC 4 WebApi 多專案執行之間的資料傳遞

ASP.NET MVC 4 WebApi 中,一個方案底下可以掛上多個專案,在專案之間使用 Api 做資料傳遞,如果是以「 Windows Azure 雲端服務」專案,當然,部署到雲端當然沒有問題,因為各 Api 在溝通時,都已經知道要呼叫 Api 的網址了。

但是,在本機執行測試並不是這麼一回事,因為它執行後 IP:Port 會亂跳,而且是視載入狀況而決定它是哪一個 IP:Port,且如果使用 Windows Azure 雲端服務執行,還必須先啟動 Windows Azure 偵錯環境,多個專案就會啟動幾次,還會失敗,執行一次就非常耗時。

例如,有三個專案如下圖


執行後三個專案的 IP:Port 分別為:http://127.0.0.1:81/、http://127.0.0.3:82、http://127.0.0.2:81,且有兩個專案是失效的,而且下次執行後,IP:Port 還會不一樣,OMG,所以根本無法測試,如果你也遇到這種情況,使用下面方法解決:

1.

在方案內設定將所有執行 Azure 專案轉為非 Azure 專案,這個動作是要將所有網頁執行出來的網址都是 localhost。



2.

接著將每個專案都指定一個獨特的 port 號,這樣就能完全指定每一個專案執行出來的網址是唯一且不會變動的。


最後在各專案之間就可以先將其他的 Api Domain 寫在 web.config 方便取用,最後部署到雲端之前先將 Domain 改掉就可以了。




沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...