# Reporting Service 服务启动时报错The service did not respond to the start or control request in a timely fashion

启动一台数据库服务器（Windows Server 2003）的Reporting Service（SQL Server 2008 R2）服务时，出现如下错误信息：

System.InvalidOperationException: Cannot start service ReportServer on computer 'xxx'. ---> System.ComponentModel.Win32Exception: The service did not respond to the start or control request in a timely fashion
   --- End of inner exception stack trace ---
   at System.ServiceProcess.ServiceController.Start(String[] args)
   at System.ServiceProcess.ServiceController.Start()
   at ReportServicesConfigUI.Panels.ServerInformationPanel.StartStopServiceTask(Boolean start)

"The request failed or the service did not respond in a timely fashion."

When a .NET application startup the .NET Framework it tries to check if the Microsoft assemblies are right and have not been modified, this is done connecting to a server that has a revocation list in internet. When the framework tries to connect to the server to check if it has access to internet with an elevated timeout, this makes that any other .NET application that has less timeout setting fails (as SSIS or SSRS) with the error message you are getting.

The error message you are getting when you try to start SSRS:

"The request failed or the service did not respond in a timely fashion."

Means that the SSRS timeout is lower than the timeout of the connection to the revoke list server. Some recent windows updates have introduced this issue after you installed SP2 of SSRS 2008 R2. We are  aware of this problem and we have already provided several workarounds.

This issue affects to all applications that runs on .NET framework 2.0 and there are several workarounds for this problem

1： 点击开始（Start）菜单，点击运行（Run），输入regedit命令

2： 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.

3： 找到ServicesPipeTimeout选项，单击右键选项“编辑”选项，选择“Decimal"选项，输入60000. 有可能你找不到ServicesPipeTimeout选项，这时你就需要新建该选项。然后如上所述设置其值。

4：设置完成后，需要重启服务器才能生效。

如果第一种方案没有解决问题，你可以通过通过设置ReportingServicesService.exe.config配置文件禁用认证检查。 ReportingServicesService.exe.config通常位于C:\Program Files\Microsoft SQL Server\<RS Instance>\Reporting Services\ReportServer\bin 。其中我这台服务器的路径为C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin ，在ReportingServicesService.exe.config 添加"<generatePublisherEvidence enabled="false"/>"

2nd workaround:

If the first action plan didn't work, try disabled the certificate checking in the ReportingServicesService.exe.config file:

Edit the ReportingServicesService.exe.config file usually located in this folder: C:\Program Files\Microsoft SQL Server\<RS Instance>\Reporting Services\ReportServer\bin

Add the "<generatePublisherEvidence enabled="false"/>" within the <Runtime> tag

Patch the server with the KB.

If you want to distribute this workaround to many users you can créate a script in PowerShell


在控制面板里面找到”Internet Option“，在高级设置里面找到”Check for publisher's certificate revocation" 选项，去掉勾选即可。如果 SSRS服务是以Network Service账号启动，那么修改“Internet Option”选项并不会使之生效。如果是这样，你可以为SSRS服务账号修改下面一些配置，修改注册表

HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\WinTrust\TrustProviders\Software 下State值

3rd workaround:

Another option would be disabling the global checking of the certificated in the machine following the steps below:

o   Start -> Control panel
o   Internet Options
o   Uncheck "Check for publisher’s certificate revocation"

If the services are running under the Network Service account the change to the revocation in internet options is not working for them. In that case, you can perform the following changes for the SSRS service account:

Modify the following setting in the registry:

HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\WinTrust\TrustProviders\Software

Where the default value for State key is 0x00023c00

And you will need to change it to 0x00023e00

In order to get the Windows SID for this user and be able to find out the previous registry key, please follow the below instructions.

2. Once it is installed and save to a local file, open a cmd window (with administrator privileges ) and navigate through the cmd to the folder where this spgetsid.exe is located.
3. Then type the following command line:    spgetsid domain\user                       (where the domain\user is your SSRS service account)
4. Once get the SID please go to the previous registry key for this user and apply the change.

S-1-5-20 is the SID for Network Service, and for other SIDs: http://support.microsoft.com/kb/243330

• SID: S-1-5-18

Name: Local System

Description: A service account that is used by the operating system.

• SID: S-1-5-19

Name: NT Authority

Description: Local Service

• SID: S-1-5-20

Name: NT Authority

Description: Network Service

+ 订阅