SSRS SharePoint集成模式下订阅无法触发问题排查请求
碰到这种SharePoint集成模式下SSRS订阅卡住的情况,我之前帮客户排查过好几次,给你列几个关键的排查步骤,按顺序来大概率能找到问题:
1. 先查SSRS服务的事件日志
这是最容易找到直接线索的地方:
- 打开Windows事件查看器,定位到应用程序和服务日志 > Microsoft SQL Server Reporting Services > Operational
- 看看有没有和事件拾取、订阅执行相关的错误或警告,比如服务无法访问Event表、线程初始化失败、权限不足之类的日志,这些往往是问题的根源。
2. 验证SSRS服务账户的权限
SharePoint集成模式下,SSRS服务账户的权限要求比原生模式更严格:
- 确保SSRS服务运行账户对ReportServer数据库(通常是
ReportServer_<GUID>和ReportServerTempDB_<GUID>)拥有db_owner权限,至少要具备对dbo.Event表的读写、执行相关存储过程的权限。 - 同时检查这个账户对SharePoint内容数据库的权限,集成模式下SSRS需要从SharePoint获取订阅的配置信息,权限不足会导致服务无法读取订阅详情。
3. 检查Event表的记录细节
既然Event表有记录,那得看看这些记录的状态:
- 运行以下查询查看订阅事件的状态:
SELECT EventID, EventType, EventDate, Status, EventData FROM dbo.Event WHERE EventType='TimedSubscription' ORDER BY EventDate DESC - 正常待执行的记录
Status应该是New,如果是Failed或其他状态,说明服务尝试执行过但失败了;EventData字段是订阅的XML配置,可以查看有没有无效的路径、过期的账户信息或者格式错误。
4. 确认SharePoint与SSRS的集成状态
集成模式下订阅依赖SharePoint的配置:
- 打开SharePoint管理中心,进入应用程序管理 > 管理服务应用程序,找到你的SSRS服务应用,查看状态是否正常,有没有红色报错。
- 进入SSRS服务应用的订阅设置,确认订阅功能已启用,邮件订阅的话还要检查SMTP服务器配置是否正确。
- 新建一个简单的测试订阅(比如订阅到本地文件夹),排除是特定订阅配置的问题。
5. 按正确顺序重启相关服务
不要单独重启SSRS,按这个顺序来刷新所有缓存:
- 先停止SQL Server代理服务
- 停止SQL Server Reporting Services服务
- 重启SharePoint Timer服务
- 启动SQL Server Reporting Services服务
- 最后启动SQL Server代理服务
6. 数据库层面的深层检查
有时候数据库配置或损坏会导致问题:
- 查看
dbo.ConfigurationInfo表的关键配置:
默认SELECT Name, Value FROM dbo.ConfigurationInfo WHERE Name IN ('ScheduleRefreshInterval', 'EventPollingInterval')ScheduleRefreshInterval是60秒,EventPollingInterval是10秒,如果被改成了很大的值,会导致服务很久才去拾取Event记录。 - 运行
DBCC CHECKDB (ReportServer_<你的数据库名>)检查数据库是否有一致性问题,数据库损坏可能导致服务无法正常读取Event表。
7. 检查SSRS配置文件
最后看看配置文件有没有被修改:
- 找到SSRS安装目录下的
rsreportserver.config文件,检查<EventProcessing>节点的MaxQueueThreads是否设置合理(默认是4),有没有被注释或修改。 - 确认
<SharePointIntegrated>节点的Enabled属性是True,且SharePointSiteUrl配置正确。
如果以上步骤都排查完还是没解决,可以尝试重新注册SSRS服务到SharePoint,或者修复SSRS的安装,但这是最后一步,操作前记得备份配置和数据库。
内容的提问来源于stack exchange,提问作者Petr
相关产品推荐
相关产品推荐

