環境:windows 2008 + MS SQL 2008 sp2
場景:SQL server 伺服器打完更新檔之後,Reporting Serverces無法啟動報錯如圖所示
錯誤産生原因(官方解釋):
發生此問題的原因是無法檢索受信任的和不受信任的證書信任清單(CTL)。如果系統無法通路Windows Update,或者是由于系統未連接配接到Internet,或者是因為Windows Update被防火牆規則阻止,則網絡檢索将逾時,服務才能繼續其啟動過程。在某些情況下,此網絡檢索逾時可能會超過30秒的服務啟動逾時。如果服務無法在30秒後報告啟動已完成,則服務控制管理器(SCM)将停止該服務。
錯誤截圖:

根據網上有以下三個決解方案:
方案一:
- 在本地組政策編輯器的“ 計算機配置”節點下,輕按兩下“ 政策”。
- 輕按兩下Windows設定,輕按兩下安全設定,然後輕按兩下公鑰政策。
- 在詳細資訊窗格中,輕按兩下“ 證書路徑驗證設定”。
- 單擊“ 網絡檢索” 頁籤,單擊以選中“ 定義這些政策設定”複選框,然後單擊以清除“ Microsoft根證書程式中的自動更新證書(推薦)”複選框。
- 單擊“ 确定”,然後關閉“本地組政策編輯器”。
方案二:
- 單擊“ 開始”,單擊“運作”,在“ 打開”框中鍵入regedit,然後單擊“ 确定”。
- 在系統資料庫中找到‘SystemCertificates’
- 右鍵單擊AuthRoot,選擇建立,然後單擊DWORD。
- 鍵入DisableRootAutoUpdate,然後按Enter。
- 右鍵單擊“ DisableRootAutoUpdate”,然後單擊“ 修改”。
- 在“ 數值資料”框中,鍵入1,然後單擊“ 确定”。
- 在檔案菜單上,單擊退出。
方案三:
- 單擊“ 開始”,單擊“運作”,在“ 打開”框中鍵入regedit,然後單擊“ 确定”。
-
找到并選擇以下系統資料庫子項:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control
- 右鍵單擊“ 控件”,指向“ 建立”,然後單擊“ DWORD”。
- 在“ 新值”框中,鍵入ServicesPipeTimeout,然後按Enter。
- 右鍵單擊ServicesPipeTimeout,然後單擊“ 修改”。
-
單擊“ 十進制”,鍵入要等待服務逾時的毫秒數,然後單擊“ 确定”。
例如,要在服務逾時之前等待60秒,請鍵入60000。
- 在“ 檔案”菜單上,單擊“ 退出”,然後重新啟動計算機。
以上三個方案都進行了測試,并不能決解我的問題,繼續找原因
一、打開SQL 配置管理器 找到SQL Server Reporting Services 打開
二、根據存放路徑進入報表服務的存放目錄、找到ReportingServiceService.exe 用管理者身份運作
三、在Reporting Service的Log檔案夾中找到錯誤資訊(這個是服務運作報錯的主要原因)
四、決解方案
斷網的情況下:
下載下傳最新的CTL,請使用以下更新的URL:
- http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab
- http://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab
或:連接配接網絡直接運作Server ReportingService