sql2005報表服務不能被啟動問題總結報告
由于以前安裝過sql2005 beta2版本,后來再裝上sql2005正式版后發現報表服務不能啟動
使用url地址 http://localhost/reportserver訪問時報告下面信息:
the report server cannot open a connection to the report server database. a connection to the database is required for all requests and processing. (rsreportserverdatabaseunavailable) get online help
****sql server does not exist or access denied.****
經過診斷,這一問題可以通過命令行解決,如下:
rsconfig -c -s 機器名 -a sql -p sql用戶名(如sa) -u sql用戶名密碼(如sa) -d 你的報表服務器數據庫名(如reportserver)
當然,如果你的sqlserver2005不是混合驗證,你可以改變一下上面的參數,如
rsconfig -c -s 機器名 -a windows -p win用戶名(如myserver/administrator) -u 用戶名密碼(如123) -d 你的報表服務器數據庫名(如reportserver)
這樣,如果上面命令沒有報錯的話,你再通過http://localhost/reportserver訪問時應該是不會報不能連接到sqlserver 數據庫問題了
但是,我通過http://localhost/reportserver訪問是,報告下面信息:
報表服務器 windows 服務“reportserver”未運行。必須運行該服務才能使用報表服務器。 (rsreportserverserviceunavailable)
真冤,那我就啟動報表服務把,可是啟動的時候它報錯,說它啟不起來,要我去事件里看看,這不玩我么?
我就去事件里瞧瞧,果然發現3個大紅叉,內容如下:
紅叉1:
the remote procedure call (rpc) service failed to start.
紅叉2:
service cannot be started. microsoft.reportingservices.diagnostics.utilities.unknownusernameexception: 無法識別用戶名或組名“localsystem”。
at microsoft.reportingservices.library.native.nametosid(string name)
at microsoft.reportingservices.library.serviceappdomaincontroller.startrpcserver(boolean firsttime)
at microsoft.reportingservices.library.serviceappdomaincontroller.start(boolean firsttime)
at microsoft.reportingservices.ntservice.reportservice.onstart(string[] args)
at system.serviceprocess.servicebase.servicequeuedmaincallback(object state)
紅叉3:
the report server cannot decrypt the symmetric key. most likely, the service account or password has changed. to continue, run rsconfig.exe to update the report server account information./r/n
紅叉1報的莫明奇妙,rpc服務啟動故障,這sql2005更年期了把,明明rpc服務好好的啟著
紅叉2報的更加奇怪,沒事用這localsystem破標志干嘛,我又沒有設置你,無法識別,
紅叉3竟然提供了一個解決方案,說要我再用rsconfig.exe試試,整人怎么能這樣呢?rsconfig.exe總共才幾個參數,我都玩了幾百遍了,還要我玩,會不會啊,又是一個腦癡,不知道就不知道,還要給個什么建議干嘛,引我入歧途啊
不過微軟還是挺實在的,我把紅叉2的內容往google上一搜,就發現微軟的官方網站上有這個問題的解決辦法,網址如下:
http://support.microsoft.com/kb/911846/en-us
這文章大意就是說:
確實有這個問題存在,這個原因是在rsreportserver.config文件中的webserviceaccount屬性沒有指好導致,當這個屬性沒有指好時,它就會使用aspnet使用的帳號,然而當前aspnet使用的這個帳號它不存在于域控制器中的,缺省情況下這個aspnet使用的帳號就是應該在域控制器中,如使用iwam_computername帳號
哎,看上面的話不就是怪我改動了aspnet的使用帳號,所以報表服務啟不起來,明顯推卸責任
不多說了,看看微軟的解決方法把,其實很簡單,打開rsreportserver.config文件,這文件所處的目錄如下:
drive:/program files/microsoft sql server/mssql.x/reporting services/reportmanager
然后找下面標志
<webserviceaccount></webserviceaccount>
把它改成下面的樣子:
<webserviceaccount>iwam_computername</webserviceaccount>
好了,存盤
重啟報表服務,歷時3小時16分零16秒,報表服務啟動終于成功.
但并不意味著可以成功訪問了,我再訪問http://localhost/reportserver/時出現下面錯誤:
報表服務器無法打開與報表服務器數據庫的連接。所有請求和處理都要求與數據庫建立連接。 (rsreportserverdatabaseunavailable) 獲取聯機幫助
login failed for user 'crserver/iwam_crserver'.
這個問題報告到挺實在的,就是說當前這個用戶不能訪問sqlserver數據庫,那行,我就為這個用戶建立一個sql登錄
卻發現其實這個用戶根本就不能建登錄,意味著它也不是域帳號,哎,忘了說了,我的時win2003系統,微軟上面那篇文章講的是2000的
好把,反正知道問題所在,先把asp.net的運行帳號改為nt authority/local service,然后在上文件中把
<webserviceaccount></webserviceaccount>
改成下面的信息
<webserviceaccount>nt authority/local service</webserviceaccount>
這下應該沒錯了把,可是郁悶的是還是有錯,上個錯誤沒有了,下個錯誤出來了,如下:
報表服務器無法解密用于訪問報表服務器數據庫中的敏感數據或加密數據的對稱密鑰。必須還原備份密鑰或刪除所有加密的內容。有關詳細信息,請查閱該文檔。 (rsreportserverdisabled) (rsrpcerror) 獲取聯機幫助
不正確的數據。 (exception from hresult: 0x80090005)
上帝啊,誰來拯救我把,此刻我有多少腦細胞因窒息而死亡,灰心啊,難不成辛苦寫了這么多卻最終還是沒有解決?
不甘心,再折騰一把,記得sql2005有一個報表配置管理器,去里面玩玩
發現有一個加密的一欄,不管了,它不是說不能解密么,那我先把它刪除,刪除成功了,然后再change一下生成一個新的,ok
在重新使用http://localhost/reportserver訪問,幸喜惹狂啊,什么錯也沒有了
ie返回界面如下:
localhost/reportserver - /
--------------------------------------------------------------------------------
----------------------
microsoft sql server reporting services 版本 9.00.1399.00
大功告成!
新聞熱點
疑難解答