以下是一些與無法啟動的Azure云服務角色相關(guān)的常見問題和解決方案。
如果本文未解決你的Azure問題,請訪問MSDN和CSDN上的Azure論壇??梢栽谶@些論壇上發(fā)布問題。還可提交Azure支持請求。若要提交支持請求,請在Azure支持頁上提交。
缺少DLL或依賴項
DLL或程序集缺失可能導致出現(xiàn)不響應的角色以及在“正在初始化”、“忙”和“正在停止”狀態(tài)之間循環(huán)的角色。
DLL或程序集缺失的癥狀可能為:
·角色實例的狀態(tài)在“正在初始化”、“忙”、“正在停止”之間循環(huán)。
·角色實例已轉(zhuǎn)為“就緒”狀態(tài),但在導航到Web應用程序時未顯示相應頁面。
若要調(diào)查這些問題,可采用幾種推薦的方法。
在Web角色中診斷缺失DLL的問題
如果導航到在Web角色中部署的網(wǎng)站,且瀏覽器顯示類似于下面的服務器錯誤,可能指示DLL缺失。
'/'應用程序中出現(xiàn)服務器錯誤。
通過關(guān)閉自定義錯誤來診斷問題
可通過配置Web角色的web.config,將自定義錯誤模式設(shè)置為“關(guān)閉”并重新部署服務,來查看更完整的錯誤信息。
若要在不使用遠程桌面的情況下查看更完整的錯誤,請執(zhí)行以下操作:
1.在Microsoft Visual Studio中打開解決方案。
2.在“解決方案資源管理器”中,找到web.config文件并打開。
3.在web.config文件中,找到system.web部分并添加以下行:
XML
<customErrors mode="Off"/>
4.保存文件。
5.重新打包并重新部署服務。
重新部署服務后,會看到錯誤消息,其中包含缺失的程序集或DLL的名稱。
通過遠程查看錯誤來診斷問題
可使用遠程桌面來訪問角色并遠程查看更完整的錯誤信息。通過以下步驟使用遠程桌面來查看錯誤:
1.確保安裝了Azure SDK 1.3或更高版本。
2.在使用Visual Studio部署解決方案的過程中,啟用遠程桌面。有關(guān)詳細信息,請參閱使用Visual Studio為Azure云服務中的角色啟用遠程桌面連接。
3.在Azure門戶中,在實例顯示“就緒”狀態(tài)后,遠程連接到該實例。有關(guān)通過云服務使用遠程桌面的詳細信息,請參閱遠程連接到角色實例。
4.使用在遠程桌面配置期間指定的憑據(jù)登錄到虛擬機。
5.打開命令窗口。
6.鍵入IPconfig。
7.記錄IPV4地址值。
8.打開Internet Explorer。
9.鍵入Web應用程序的地址和名稱。例如,http://<IPV4 Address>/default.aspx。
現(xiàn)在,導航到網(wǎng)站將返回更明確的錯誤消息:
·'/'應用程序中出現(xiàn)服務器錯誤。
·說明:執(zhí)行當前Web請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導致錯誤的出處的詳細信息。
·異常詳細信息:System.IO.FIleNotFoundException:未能加載文件或程序集“Microsoft.WindowsAzure.StorageClient,Version=1.1.0.0,Culture=neutral,PublicKeyToken=31bf856ad364e35”或它的某一個依賴項。系統(tǒng)找不到指定的文件。
例如:
使用計算模擬器診斷問題
可以使用Azure計算模擬器來診斷并解決缺失依賴項和出現(xiàn)web.config錯誤的問題。
為了在使用此診斷方法時獲得最佳結(jié)果,應使用包含Windows的干凈安裝的計算機或虛擬機。若要以最佳效果模擬Azure環(huán)境,請使用Windows Server 2008 R2 x64。
1.安裝獨立版本的Azure SDK
2.在開發(fā)計算機上生成云服務項目。
3.在Windows資源管理器中,導航到云服務項目的bindebug文件夾。
4.將.csx文件夾和.cscfg文件復制到用來調(diào)試問題的計算機。
5.在干凈的計算機上打開Azure SDK命令提示符窗口并鍵入csrun.exe/devstore:start。
6.在命令提示符下鍵入run csrun<path to.csx folder><path to.cscfg file>/launchBrowser。
7.角色啟動后,會在Internet Explorer中看到詳細的錯誤信息。還可使用標準的Windows故障排除工具來進一步診斷問題。
使用IntelliTrace診斷問題
對于使用.NET Framework 4的輔助角色和Web角色,可以使用Microsoft Visual Studio Enterprise中提供的IntelliTrace。
請按照以下步驟操作來部署啟用了IntelliTrace的服務:
1.確認已安裝Azure SDK 1.3或更高版本。
2.使用Visual Studio部署解決方案。在部署期間,請選中“為.NET 4角色啟用IntelliTrace”復選框。
3.實例啟動后,打開“服務器資源管理器”。
4.展開“AzureCloud Services”節(jié)點并查找部署。
5.展開部署,直至看到角色實例。右鍵單擊其中一個實例。
6.選擇“查看IntelliTrace日志”。此時會打開“IntelliTrace摘要”。
7.查找摘要的異常部分。如果存在異常,則會將該部分標記為“異常數(shù)據(jù)”。
8.展開“異常數(shù)據(jù)”并查找類似如下內(nèi)容的System.IO.FileNotFoundException錯誤:
解決缺失DLL和程序集的問題
若要糾正丟失DLL和程序集錯誤,請按照以下步驟進行操作:
1.在Visual Studio中打開解決方案。
2.在“解決方案資源管理器”中,打開References文件夾。
3.單擊錯誤中標識的程序集。
4.在“屬性”窗格中,找到“復制本地屬性”并將值設(shè)置為True。
5.重新部署云服務。
確認所有錯誤均已更正后,可以在不選中“為.NET 4角色啟用IntelliTrace”復選框的情況下部署服務。