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