2014-03-12 121 views
3

我們已將應用作爲Azure上的託管服務進行部署。如果我們部署指定我們需要10個實例的服務,它將創建10個託管應用程序的虛擬機。我的問題是,如果在應用程序的代碼中引用System.Environment.MachineName我是否保證爲應用程序正在運行的每個實例都有唯一的計算機名稱?所以,從理論上講,如果我有一個頁面,每次點擊時都顯示System.Environment.MachineName,最終會看到10個不同的機器名稱?既然你可以明顯地有多個虛擬機在同一機器上運行,我不知道是否在技術上你可以有相同的物理硬件兩個實例,如果你沒有,就這兩個的返回相同的System.Environment.MachineName?或者,System.Environment.MachineName在同一個盒子上的所有虛擬機中都是唯一的。Azure託管服務:VM機器名稱

如果我不能保證10個唯一名稱,是否有任何數據,我可以從將確定實例唯一足以使當我的應用程序的所有10個實例都被打,我可以識別的代碼得到什麼?

回答

0

的標識符下面獨特的角色的每一個部署,檢查,如果這有助於

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.deploymentid.aspx

+0

部署通常是用於長期將輸入服務部署到分段或生產環境。你確定每個虛擬機的DeploymentID都會有所不同嗎?或者它是否是部署的標識符,而不管它在哪個VM上? –

+0

這導致了答案,但使用的最好的事情是RoleEnvironment.CurrentRoleInstance.Id。 –