2013-02-05 84 views
5

我有一個使用Azure存儲並已成功部署到Azure的ASP.NET MVC項目。但是,在本地運行項目時,它不會啓動Azure模擬器。如何使用ASP.NET MVC項目啓動Azure模擬器

我發現啓動Azure模擬器的唯一方法是創建一個「Windows Azure雲服務」快捷方式並手動運行該方法。

有沒有辦法確保Azure模擬器在我啓動應用程序時運行?

+0

感謝您的答案。非常有幫助,但是如何知道我是否應該在Cloud Service中運行?有什麼優勢?這是做Azure開發的標準方式嗎?我對啓動時間以及在VS中停止調試時關閉它的方式感到厭倦。 – Tom

回答

3

我在與我的MVC網站相同的項目中有一項雲服務。由於您已經創建了MVC項目,請嘗試...

  1. 將新的Cloud項目添加到您的解決方案。添加時不要選擇任何角色。
  2. 一旦雲計算項目是添加,右鍵點擊角色和slect ...
    • 添加「在解決方案Web角色項目......」在那裏,你可以選擇你的MVC項目。
  3. 最後但並非最不重要的一點,將Cloud項目設置爲啓動項目,它將在本地運行時啓動相應的計算和存儲模擬器。

我剛剛在VS2012中證實了這一點,自從我做完這些事情之後已經過了幾個月。

0

在解決方案中沒有云服務項目,這可能會很棘手。有幾件事你可以做:

  1. 當計算機啓動時啓動存儲模擬器。
  2. 看看當你使用雲服務啓動一個項目時VS如何做到這一點。
  3. 開始調試應用程序時,在代碼中啓動存儲模擬器。你可以做的是使用代碼這樣的[這顯然是一個黑客,而不是確定一個優雅的:)]在你的Application_Start啓動存儲仿真處理()方法:

     protected void Application_Start() 
         { 
          AreaRegistration.RegisterAllAreas(); 
          WebApiConfig.Register(GlobalConfiguration.Configuration); 
          FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
          RouteConfig.RegisterRoutes(RouteTable.Routes); 
          BundleConfig.RegisterBundles(BundleTable.Bundles); 
    #if (DEBUG) 
          { 
           Process.Start(@"C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\devstore\DSServiceLDB.exe"); 
    
          } 
    #endif 
         } 
    

我的猜測是因此你需要以管理員身份運行VS。我試過上面的代碼,它工作正常。上面的代碼假設您的存儲模擬器使用LocalDB進行存儲。

+0

您當然不需要編寫代碼來手動啓動該過程。您所要做的就是將CloudServices項目(包含您的角色的項目)設置爲Visual Studio啓動項目。然後,只需F5,然後離開你。 – ryancrawcour

+0

我相信原來的問題,該項目是一個簡單的MVC Web項目,而不是一個雲服務項目。爲了利用雲服務項目,您可以啓動存儲模擬器是一個矯枉過正的IMO。 –

+0

爲什麼這是低調?這似乎是實際的答案... – William