錯誤案例:在Microsoft Virtual PC 2007和一臺筆記本電腦上安裝MSDN訂閱下載的SQL Server 2005企業(yè)版時出現(xiàn)問題。安裝環(huán)境為windows Server 2003 企業(yè)版 + sp1,另外一個系統(tǒng)是帶sp2的,安裝用戶使用超級管理員(Administrator)。在安裝“Integration Services”步驟時出現(xiàn)安裝錯誤,提示“錯誤: -2146233087”。
錯誤記錄如下:
標(biāo)題: Microsoft SQL Server 2005 安裝程序
------------------------------
無法在 COM+ 目錄中安裝和配置程序集 C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft.SqlServer.MSMQTask.dll。錯誤: -2146233087
錯誤消息: Unknown error 0x80131501
錯誤說明: 要執(zhí)行此任務(wù),您必須具有管理憑據(jù)。請與您的系統(tǒng)管理員聯(lián)系以獲得幫助。
有關(guān)幫助信息,請單擊:
go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft
+SQL+Server&ProdVer=9.00.1399.06&EvtSrc=setup.rll&EvtID=
29549&EvtType=sqlca%5csqlassembly.cpp%40Do_sqlAssemblyReg
Svcs%40Do_sqlAssemblyRegSvcs%40x80131501
通過幫助信息的超鏈接頁面,提示“需要為MS DTC服務(wù)配置 Network Service帳戶運行”,不過筆者的MS DTC本來就是在Network Service帳戶下運行。
通過百度和Google搜索了一下,有不少朋友碰到類似錯誤消息,不過沒有得到好的解決方式,只好自己尋找線索進(jìn)行嘗試??梢钥隙ǖ氖菃栴}應(yīng)該出現(xiàn)在訪問權(quán)限,而這方面常見的問題一般都是對文件系統(tǒng)目錄和系統(tǒng)注冊表的訪問。在微軟的客戶幫助和支持網(wǎng)站搜索SQL Server的相關(guān)安裝信息。有一篇文章提到設(shè)置“C:\WINDOWS\Registration”的權(quán)限,確認(rèn)該目錄以及目錄下的clb和crmlog文件有完全的讀寫權(quán)限,再次安裝SQL Server 2005在“Integration Services”步驟還是提示失敗。在安裝過程中選擇服務(wù)帳戶時使用內(nèi)置系統(tǒng)帳戶或使用域用戶帳戶都一樣。
看來問題沒有這么簡單,筆者在另外一個系統(tǒng)中安裝時啟用RegMon進(jìn)行注冊表操作監(jiān)視,過濾后只監(jiān)視“msiexec.exe:484”進(jìn)程,在報以上面提到的錯誤后保存監(jiān)視日志到文件。
通過監(jiān)控日志查看失敗的情況。由于沒有仔細(xì)查找,在后來通過微軟SQL Server組的技術(shù)支持工程師才想到問題早應(yīng)該解決。以下是我事后再次查看RegMon Trace發(fā)現(xiàn)的問題故障點,通過下面的日志看出使用本機(jī)Administrator訪問注冊表.HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage項時被拒絕。
11305 32.35072327 msiexec.exe:484 OpenKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
11306 32.36096954 msiexec.exe:484 QueryKey HKCU\Software\Classes SUCCESS Name: \REGISTRY\USER\S-1-5-21-730333180-4162487032-3015738926-500_CLASSES
11307 32.36102295 msiexec.exe:484 OpenKey HKCU\Software\Classes\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage NOT FOUND
11308 32.36108017 msiexec.exe:484 OpenKey HKCR SUCCESS
11309 32.36190796 msiexec.exe:484 CreateKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
11310 32.36222076 msiexec.exe:484 CreateKey HKCR\Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.DataFileMessage ACCESS DENIED NBCN-ZZ\Administrator
由于粗心結(jié)果又多做了很多工作,查看系統(tǒng)的“組件服務(wù)”配置是否有問題,但是沒有發(fā)現(xiàn)什么異常。
在再次出現(xiàn)安裝問題后,這次就直接點擊“忽略”按鈕繼續(xù)安裝SQLServer的其他部分,安裝結(jié)束后,提示安裝成功完成。
運行“dcomcnfg”,打開系統(tǒng)組件服務(wù)。展開控制臺根目錄->組件服務(wù)->計算機(jī)->我的電腦->COM+應(yīng)用程序節(jié)點,沒有發(fā)現(xiàn)Microsoft.SqlServer.MSMQTask節(jié)點,可見該COM+應(yīng)用程序沒有安裝上。
再次運行SQL Server 2005安裝程序進(jìn)行添加刪除安裝,提示安裝成功,在“組件服務(wù)”中看到“Microsoft.SqlServer.MSMQTask”??磥韱栴}解決了,但是那時還不知道問題出在哪里。卸載SQL Server 2005,發(fā)現(xiàn)“Microsoft.SqlServer.MSMQTask”并沒有卸載,測試只安裝SQL Server 2005的Integration Services服務(wù)。結(jié)果安裝失敗,選擇“中止”取消安裝,再次確認(rèn)存在“Microsoft.SqlServer.MSMQTask”服務(wù)。
接下去筆者把安裝過程中出現(xiàn)的錯誤發(fā)送給微軟,請SQL Server 組的技術(shù)支持工程師幫助解決。在工程師查找問題過程中,雖然許多檢查點我都做過,不過他查找分析解決問題的思路清晰,以下我列了大概幾個步驟。
更多信息請查看IT技術(shù)專欄