2012-04-27 119 views
0

我有一個網站轉換成運行ASP.NET webforms的網絡應用程序。網站轉換爲Web應用程序 - Azure出現問題

轉換已經完成,我可以在Azure模擬器本地運行它,利用Azure計算和Azure blob存儲。

但是,當我將應用程序發佈到Azure時,它始終處於「等待初始化」狀態(持續3個小時)。此時,我可以將RDP放入實例中,但錯誤日誌中沒有日誌。

IIS已創建,並且網站按預期位於e:\驅動器中。從本地RDP,我無法查看網站(404),並且在Azure管理門戶中,它僅處於初始化階段,每次刷新都會中止更新時間。

我怎麼知道這個問題是什麼?

+0

這種情況發生的常見原因之一是存儲或診斷的連接字符串不正確。仔細檢查它們。 – Chandermani 2012-04-27 05:30:24

+0

我已經刪除了啓用診斷複選框,所以我不認爲這會是問題。 – Paul 2012-04-27 05:39:26

回答

2

它通常發生在一個糟糕的web.config和/或缺少依賴關係。

這是你可以用它做什麼。

  1. 轉到項目中每個引用的屬性,並將'copy local'設置爲true。
  2. 雙擊/三重檢查web.config中的每個配置節。確保你指向正確的數據庫(如果有的話)。
  3. 確保您的任何組件未在Azure上直接進行磁盤調用。有一種方法可以在Azure中配置它們,只需要在Azure項目屬性中的「本地資源」設置中管理一些額外的管道。
  4. 如果您使用SQL Azure,請確保您的數據庫實例上的防火牆已設置爲允許來自計算實例的調用。

希望這會有所幫助。

+0

即使在本地模擬器中,這些東西(排除第1點)是否會導致問題?這工作正常。 – Paul 2012-04-27 05:36:02

+0

您對Prod vs Debug版本有不同的部署設置嗎?這些可能會導致問題。打開你從VS創建的軟件包,並看看DLL和web.config – Mark 2012-04-27 05:57:54

+0

第一步似乎已經解決了它,非常感謝那 – Paul 2012-04-27 06:02:53

1

這些通常是starup問題或引用庫的問題。你有任何啓動任務嗎?

我會逐個刪除啓動任務,激活你在WebRole.cs文件中做的並從那裏開始。我非常沮喪,我知道,我花了很多天試圖找出問題有時

+0

我只在global.asax中有application_startup代碼,但是如果它無法連接到數據庫,它應該會引發異常。我已經將存儲設置爲使用存儲帳戶憑證,我的名字是name.blob.core.windows.net的url和主要訪問鍵。 WebRole.cs中沒有任何東西 – Paul 2012-04-27 05:33:38

0

基於您在您的問題描述中提到了我認爲:

  1. 你可以使用內部IP地址即RDP到您的Azure的實例
  2. 和遠程後入您Azure的VM,你打開網頁http://10.x.x.x/
  3. 而你得到404錯誤(找不到文件 - 標準的HTTP錯誤信息)

有時該網站確實現在有一個默認的PA ge設置即default.aspx或index.aspx,並嘗試使用http://10.x.x.x/基本網址打開默認頁面並生成錯誤。如果您嘗試打開您知道的頁面,例如http://10.x.x.x/somepage.aspx,該怎麼辦?只要somepage.aspx存在於webroot中,它應該在瀏覽器中打開。

由於您的Web角色未處於就緒狀態,因此我認爲您的角色還存在其他一些問題。這裏有很多事情要儘量根源:

  1. 檢查事件日誌中的任何記錄異常,因爲角色是初始化我相信你可以得到一些例外,在事件日誌中
  2. 看看C: \ Logs \文件夾以查找與AzureBootStrapper或IISConfigurator相關的任何異常
  3. 嘗試將E:\ AppRoot與開發機器\軟件包\相匹配,以查看是否有任何缺少的引用(此問題也將記錄在事件日誌中)
  4. 我不確定你的代碼如何依賴於Azure Blob存儲,但是如果你的啓動中有某些東西依賴於Azure B LOB存儲請從Azure的VM驗證你必須連接到基於我Azure的VM內部挖掘豐富的經驗,有

問題可能很難猜測或寫的答案,因爲每一種情況下可能會非常不同,我們主要可以爲根本原因提供非常一般的指導原則。

相關問題