2012-09-26 40 views
2

我有一個包含3個天藍色Web角色和1個輔助角色的解決方案。不斷更改azure計算模擬器中的127.0.0.x地址

這些角色每個都有自己的天藍色部署項目,因爲它們需要不同的子域,可能必須獨立部署。在開發對URL敏感的方面(如跨越多個子域的Cookie,角色之間的內部連接等)時,Azure計算模擬器的不斷變化的虛擬IP(我當前有127.0.0.2,127.0。 0.3和127.0.0.8(因爲某種原因而中間沒有))成爲一個問題。此外,由於瀏覽器會將每個IP識別爲不同的主機,因此我需要DNS地址來實現子域跨Cookie。

似乎沒有關於此主題的大量信息資料,所以也許我的方法是錯誤的,但您如何解決這些問題?

1)使用完整的IIS而不是IIS Express。我不知道這是否是一個可行的解決方案,我想它會阻止不斷變化的地址,但我更喜歡輕量級的IIS Express。此外,我不確定是否可以使用穩定的子域名(與生產域名不同),而不需要太多手動工作。

2)使用ServiceDefinition.csdef中的hostHeader屬性。只能手動更改主機文件,並且如果不移除主機文件條目,我將無法訪問高效代碼(容易出錯並且非常單調乏味)

3)某種形式的反向代理,但確實如此感覺過度殺傷。

我希望我只是忘了什麼東西明顯;)

問候,
Pharao2k

[編輯] 我要的是有我的三個項目並行調試與任何一個主機名由網址爲所有三個或一個DNS名稱(每個項目的子域名)。也許我在嘗試這個時失去了理智,但我似乎無法弄清楚如何做到這一點。

  • 如果我使用IIS Express和三個Azure部署項目,每次按編譯時都會得到另一個IP(127.0.0.X)。當然,我可以編輯我的hosts文件並刷新dns緩存每次我按F5,但這是不可接受的。

  • 如果我使用完整IIS和三個Azure部署項目,它不會讓我一次啓動多個項目 - >不可用。

  • 如果我爲所有角色使用組合的Azure項目,那麼我將不得不維護至少5個天藍色項目......單個項目(對於真正的部署,正如我所說的,它們必須獨立部署)和合並的一個。而且我非常肯定,這會以某種方式將我踢向堅果,而且這肯定會讓人無法成爲一個經過測試的場景。 [編輯#2]哇,甚至在這裏做的IP地址發生變化,因此回修改hosts文件+ DNS刷新每F5後-.-

我不能想象我的使用情況子域是不尋常的,我不明白爲什麼沒有人似乎有這個問題。

+0

嘗試將Web端點上的pulic端口設置爲不會發生衝突的高數字。 –

+0

謝謝,但這不會改變ip地址;) – Pharao2k

+0

啊,對不起,你說得對,他們都是不同的雲計劃。如果你在一個單獨的雲開發項目中的多個Web角色,它將工作,因爲它將是一個單一的IP。 –

回答

3

我建議將Web角色合併爲一個角色。您將獲得更易於管理的部署,更高的金錢價值(即更小的最小部署大小)和單一維度。

您可以使用不同的端口號或主機頭將流量定向到正確的端點。

有很多,描述如何做到這一點,例如可用的文章:http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx

+0

不幸的是,不同的角色不能合併爲更少的角色,因爲他們需要獨立於部署。必須有一種方法可以在計算模擬器中使用dns地址託管多臺主機。 – Pharao2k

+0

你真的需要模擬器嗎?您可以直接在IIS/cassini上運行Web應用程序。 –

+0

當他們在天藍色的環境中使用時,他們的表現會有所不同,因此很難像這樣測試。 – Pharao2k

1

調出性能上的每個項目(參考項目,而不是Azure角色項目)。轉到項目屬性 - > Web。我選中了「使用本地IIS服務器」和「使用IIS Express」。爲了鎖定,我在項目URL中設置了我想要的URL。

我使用http:// localhost:[端口號],但您應該能夠根據需要配置服務器和主機文件,一旦停止選取隨機IP和端口。

+0

只有當我不能通過天藍色計算模擬器啓動Web角色時,這樣做纔有效嗎?雖然當然可能,但這意味着我無法在本地測試負載平衡,診斷,跟蹤等,至少不是以「天藍色的方式」進行測試。 – Pharao2k