IIS中HTTPS下显示目录而非运行SSRS应用的问题求助
SSRS子目录HTTPS部署显示目录而非应用的问题排查与解决
问题描述
尝试在IIS中通过子目录(https://example.com/ReportServer/ 和 https://example.com/Reports/)托管SQL Server Reporting Services(SSRS),HTTP协议下报表运行正常,但HTTPS协议下访问相同URL时仅显示目录内容;若禁用目录浏览,则触发错误:
HTTP Error 403.14 - Forbidden,Web服务器配置为不列出此目录的内容。
环境说明
- IIS配置了自签名SSL证书
- 已安装SSRS,在IIS中配置ReportServer和Reports为虚拟目录并转换为应用程序
- 使用SQL Server 2022
- 应用池已配置为.NET Framework 4.0
排查与解决步骤
1. 检查HTTPS绑定的处理程序映射
打开IIS管理器,找到ReportServer和Reports应用程序:
- 切换到功能视图,打开处理程序映射
- 确认HTTPS站点下存在SSRS所需的ASP.NET处理程序映射(如
*.aspx、*.asmx及SSRS专用处理程序) - 若缺失,点击添加模块映射,手动配置:
- 请求路径:
* - 模块:选择
ManagedPipelineHandler(适配.NET Framework 4.0) - 可执行文件:指定
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll - 名称:命名为
SSRS_HTTPS_Handler
- 请求路径:
2. 修正SSRS配置文件的默认文档设置
打开SSRS对应的web.config文件:
ReportServer路径:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\web.configReports路径:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportManager\web.config- 在
<system.webServer>节点下添加/修改<defaultDocument>配置,确保优先加载SSRS入口文件:
<defaultDocument> <files> <add value="ReportServer.aspx" /> </files> </defaultDocument>
- 检查
<httpProtocol>节点下的自定义头,确保无强制目录浏览的配置
3. 重新关联HTTPS站点与SSRS应用程序
- 右键IIS中的HTTPS站点,选择添加应用程序
- 别名分别设置为
ReportServer和Reports,物理路径对应到SSRS的官方目录:ReportServer:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServerReports:C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportManager
- 选择已配置好的.NET Framework 4.0应用池
4. 配置应用程序级的目录浏览与默认文档
- 针对
ReportServer和Reports应用程序,打开目录浏览功能,确认已禁用(若不需要目录列表) - 打开默认文档设置,将
ReportServer.aspx(ReportServer应用)和Default.aspx(Reports应用)移到优先级最高的位置
5. 验证目录权限与SSL证书
- 右键SSRS物理目录,选择属性 -> 安全,添加应用池身份(格式:
IIS AppPool\[你的应用池名称]),赋予读取和列出文件夹内容权限 - 确认自签名证书已正确绑定到HTTPS站点,证书状态正常
6. 重启相关服务
- 打开命令提示符,执行
iisreset重启IIS - 打开服务管理器,重启
SQL Server Reporting Services服务
内容的提问来源于stack exchange,提问作者Sleep Paralysis
相关产品推荐
相关产品推荐

