2013-02-27 43 views
1

我正在構建一個具有Web角色的Azure雲計劃。 Web角色包含Web API,我的同事們通過遠程機器測試這些API。所以當我在VS上運行項目時,模擬器啓動並且Web角色託管在IIS上。但只要我在VS上停止項目,模擬器也會從IIS中刪除Web角色。它很明顯,爲什麼發生這種情況,但有沒有什麼辦法可以讓Web角色持續在模擬器上運行,並同時處理VS中的代碼。因爲每當我的同事想要測試這些API時,我都很難對VS做出處理。如何在VS2012上同時處理在IIS上運行的Azure Web角色?

有沒有解決方法嗎?

感謝

編輯:

ServiceConfiguration.Local.cscfg

<ConfigurationSettings>  
    <Setting name="StorageConnectionString" value="UseDevelopmentStorage=true" /> 
<ConfigurationSettings> 

Web角色:

var cloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString")); 
+0

我建議你的開發過程中不依賴於Azure的仿真器,但使用的是本地安裝IIS服務器來代替。當您不必等待模擬器啓動時,您的開發過程將顯着提速,並且您希望教您自己將Azure相關代碼置於中心位置。 – JustAnotherUserYouMayKnow 2013-02-27 09:36:28

+0

但是我的web角色依賴於azure開發存儲中的表。所以我必須在仿真器上運行它,否則如果我只在IIS上運行,那麼我不能使用表。我可以嗎? – Bitsian 2013-02-27 10:20:59

+0

您在混合存儲模擬器和計算的模擬器。它們完全是分開的東西。 – JustAnotherUserYouMayKnow 2013-02-27 10:55:22

回答

1

有幾種方法,你可能需要:

  1. 您可以讓團隊成員在測試部署上測試API,而不是在開發計算機上測試。例如,您可以使用在Azure上運行的額外小型Web角色實例。在Visual Studio中,您可以使用Web部署功能以新代碼快速更新此實例。只需幾秒鐘即可完成您的更改。這種方法帶來的額外好處是,您的同事測試不會因開發過程中發生的變化而受到影響(例如讓您的項目處於非編譯狀態或正常工作狀態)。

  2. 您可以在計算機上運行兩個Visual Studio實例:一個在Azure模擬器上以調試模式運行Web角色,另一個在開發模式下運行。

  3. 您可以在Visual Studio中配置項目以與IIS集成,以便可以通過計算機的IIS服務器(Azure模擬器外部)執行該項目。只要Azure存儲模擬器正在運行,您的代碼仍可以訪問模擬表服務。實際上,即使是WinForms或控制檯項目也可以使用存儲模擬器的服務。客戶端代碼本身不需要在Azure計算模擬器下運行(這是兩種不同的獨立模擬器)。在這種情況下,您將不會從Web角色配置中獲取存儲連接字符串,而是從諸如Web.config或App.config的應用程序配置中獲取存儲連接字符串。

我會推薦方法1,即有一個單獨的測試環境。您甚至可以針對它運行自動化集成測試。您將擁有在Azure本身上運行的額外優勢,而不是在仿真器上運行。有一些行爲差異,這種方式可以在生命週期的早期檢測到它們。

如果您的團隊想要達到下一個級別,您可以設置連續交付,以便在您的任何項目上有任何存儲庫提交時,都會有一個構建,一個部署到Azure和一組自動化測試。

+0

謝謝,很好的答案必須說! – Bitsian 2013-02-27 13:47:00

+0

我認爲方法1我們需要一個天藍色的帳戶嗎?我想它的免費,所以我會得到一個! – Bitsian 2013-02-27 14:08:46

+0

對於方法3,我想我需要把存儲連接字符串放在web配置中。當我在蒸發器中部署項目時,我已經提供了我如何引用存儲連接字符串的代碼。無論如何,我不必改變如何訪問存儲連接字符串,當我部署在iis? – Bitsian 2013-02-27 14:14:52

1

考慮設立持續交付:Continuous delivery to Windows Azure by using Team Foundation Service

優點:

  • 每次簽入後(每天或......)你的申請將被自動部署到雲服務。這樣,您的其他開發人員就可以使用此版本來使用API​​。
  • 您可以繼續使用,無需麻煩
  • 本地開發
+1

謝謝,如果我決定採用費爾南多提到的第一種解決方案,請使用此功能 – Bitsian 2013-02-27 13:47:45

+0

嘿!我通過VS中的正常發佈功能發佈到Windows Azure,每次它再次發佈整個項目而不是發佈更改。 TFS是否只發布更改(是否更快?)還是有任何只發佈Azure更改的工具? – Bitsian 2013-03-26 18:40:35

相關問題