今天的迁移过程中,我们发现两台reporting service机器的reporting service服务无法启动。
在添加了ServicesPipeTimeout 值并将之设为60000后,服务正常启动。
以下是案例的总结,以供参考。
问题描述
================
Reporting service启动失败,启动错误如下:
System.InvalidOperationException: 无法启动计算机“VPMS-WEB-15”上的服务 ReportServer。 ---> System.ComponentModel.Win32Exception: 服务没有及时响应启动或控制请求。
--- 内部异常堆栈跟踪的结尾 ---
在 System.ServiceProcess.ServiceController.Start(String[] args)
在 System.ServiceProcess.ServiceController.Start()
在 ReportServicesConfigUI.Panels.ServerInformationPanel.StartStopServiceTask(Boolean start)
问题分析
================
1. 检查reporting service自身的日志发现,没有新的日志生成。
2. 从系统事件日志中我们看到如下错误:
等待 SQL Server Reporting Services (MSSQLSERVER) 服务的连接超时(30000 毫秒)。
3. 考虑到该服务器无法连接外网,因此问题发生的原因很可能就是 reporting service无法连接外网下载证书列表(CTLs)用以验证reporting service的DLL的签名等,以致问题的发生。
当该问题发生时,由于网络不通,启动服务后,需要等待网络超时,增加了服务启动所需时间,最后服务控制器认为服务启动超时,关闭了reporting service服务。
当我们尝试了增加服务启动时间(ServicesPipeTimeout)后,问题得以解决。
解决方案
==================
1. 打开注册表管理器,定位到以下键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ ServicesPipeTimeout
2. 由于ServicesPipeTimeout不存在,因此手工添加:
在编辑菜单上,指向新建,然后单击DWORD 值。 键入ServicesPipeTimeout,然后按 enter 键。 用鼠标右键单击ServicesPipeTimeout DWORD值,然后单击修改。 单击十进制。 键入60000的值,然后单击确定。
3. 重启服务器。
参考链接:
http://support.microsoft.com/kb/2745448
如果上诉方法还是不能解决问题,将外网开启下然后在断网即可解决该问题