2013-12-10 41 views
0

我在嘗試在天藍色模擬器中調試我的天藍色網絡角色時遇到問題。我有兩個雲計算項目和一個網站,並且在調試它們時,負載平衡器將(當然)每次爲雲項目分配不同的公有IP地址。如何在調試Azure雲項目時將IP映射到主機名

這些項目是相互關聯的,而且由於IP幾乎每次碰到F5都會有所不同,因此我通過主機名和dns來引用其他項。將主機名分配給這些不同的IP時會出現問題。

我已閱讀另一個類似問題Azure Compute Emulator: Is it possible to control the IP of individual instances?的答案,我可以在每個雲項目中運行啓動腳本來重寫hosts文件,但我無法理解如何實際執行此操作。

任何幫助?我如何通過代碼訪問公共IP地址到負載均衡器?

回答

1

我們也有同樣的問題,解決它,我們做了以下幾件事:

  • 限制通過模擬器使用的端口的數量:在我們的例子中,我們也有兩個服務。在C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\devfabric中打開DevFC.exe.config文件並更改VipPoolStartIPAddressVipPoolEndIPAddress的設置。由於我們只有兩項服務,因此我們將起始地址設置爲127.0.0.81,結束地址設置爲127.0.0.82。這將確保仿真器總是隻使用這兩個IP地址。一旦你做了這個改變,你必須重新啓動計算模擬器。

    <add key="VipPoolStartIPAddress" value="127.0.0.81" /> 
    <add key="VipPoolEndIPAddress" value="127.0.0.82" /> 
    
  • 配置主機在C:\Windows\System32\drivers\etc文件夾文件:這是我們對應的IP地址,我們虛構的發展領域。這是設置看怎麼樣在我們的hosts文件:

    127.0.0.81 svc1.mydevsite.com#服務1

    127.0.0.82 svc2.mydevsite.com#服務2

  • 包括hostHeader元素:下一步是在雲項目中的Service Definition (.csdef)文件中包含hostHeader。您必須在Bindings部分包含hostHeader。對於服務1,這是設置看起來像在csdef文件:

    <綁定名稱= 「端點1」 endpointName = 「端點1」 hostHeader = 「svc1.mydevsite.com」 >

這幾乎是就設置事情而言。

有兩個限制這種方法:

  1. 當您啓動的發言權服務1模擬器,它會自動打開http://127.0.0.81:port,我必須去手動在瀏覽器中鍵入http://svc1.mydevsite.com:port
  2. 在我們的場景中,我必須首先運行服務1,然後服務2,因爲IP被綁定在主機文件中。只有Service 1綁定到127.0.0.81的IP地址,而Service 2綁定到127.0.0.82的IP地址。如果我先啓動服務2,則模擬器會爲其分配IP地址127.0.0.81

我確定有更好的方法來完成這件事,但這是我們最終做的,到目前爲止它一直在爲我們工作(至少對於2個服務組合)。我敢肯定,如果你開始處理許多雲計算項目,這可能會造成一些問題。

+0

這是部分有用的信息,謝謝。我不知道DevFC配置文件,VipPoolStartIPAddress在某種程度上使我的IP分配更容易處理。 但是,我仍然不想手動啓動每個項目。而且由於我也在其他項目上編碼,所以不幸的是,我不能將Vip地址限制爲只有兩個。因此,IP地址仍然有點任意分配(我不想在每次調試會話之間重新啓動仿真器)。 – mbaaz

相關問題