【问题标题】:Reporting Services Web Service only works with localhost after Windows UpdatesReporting Services Web 服务仅适用于 Windows 更新后的 localhost
【发布时间】:2014-01-17 15:19:53
【问题描述】:

在 ASP.NET Web 应用程序中,我有一组可通过 2010 报表查看器访问的报表。该应用程序在生产中运行良好,直到管理员安装了 Windows 更新。从那时起,我现在收到以下错误消息:

The attempt to connect to the report server failed. Check your connection information and that the report server is a compatible version.
The request failed with HTTP status 404: Not Found. 

SSRS 位于同一台服务器上,我使用 FQDN,以便我可以使用主机头而不是端口号,即:

http://rs.myserver.my.domain.net/ReportServer

这一直有效,直到更新,现在自从更新显示上述错误,恢复功能的唯一方法是将 ReportServerUrl 设置为 localhost,基于端口的绑定,即:

http://localhost:8080/ReportServer

另外请注意,尽管我从报表查看器收到上述错误消息,但我可以通过 FQDN 访问报表管理器和报表服务 Web 服务。

我发现最有趣的是,在我的开发服务器上,我能够复制该问题(尽管在同一天进行了更新,但该问题并不存在,尽管我尚未确定是否在两者上都运行了相同的更新)。我复制问题所做的只是安装 Report Viewer 2012 运行时。有趣的是,这个运行时并没有安装在开发环境中,但它是去年安装在生产环境中的。更新或卸载运行时会使系统处于相同的损坏状态。

希望有人可以提供一些见解,以便我可以恢复我想要的设置。

谢谢!

【问题讨论】:

  • 您的 SQL Server Reporting Services 是什么版本的 SQL?

标签: asp.net reporting-services sql-server-2012 ssrs-2012


【解决方案1】:

这听起来像是服务器上的环回检测。环回检测旨在防止反射攻击,并在来自服务器的链接使用看起来像外部链接的东西环回同一服务器时表现出来。这就是 localhost 有效但您的 FQDN 无效的原因 - 服务器知道 localhost 是它本身,但 FQDN 看起来像一个外部链接。此检查确实与 Windows Server 上的某些服务包一起安装。

查看Microsoft Knowledge Base article 896861 以了解解决此问题的方法。方法 1 涉及将主机名放入名为BackConnectionHostNames 的多字符串值注册表项中,该注册表项位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 的注册表中。方法 2 通过在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 的注册表中放置一个名为 DisableLoopbackCheck 且值为 1DWORD 注册表项来完全禁用环回检测(不太推荐)。

【讨论】:

  • 我想我明天会尝试完全禁用它,但是我已经将主机名添加到注册表中。这是由于过去对其他连接问题进行了故障排除,并且几个月来一直以这种方式工作。
  • 在 Windows Server 自动更新后,SharePoint 服务器也发生了同样的事情。索引服务器循环回自身以进行内容源爬取(以减轻主 Web 服务器的负载)并正常工作了几年,然后发生了 Windows 更新,我们所有的文档都被踢出索引,因为他们不能再也找不到了。我们禁用了环回检测(主机名修复不起作用)并且我们的索引再次开始工作。
  • 好吧,这是一个半身像!我什至在尝试 DisableLoopbackCheck 之前尝试设置 DisableStrictNameChecking。在 DisableLoopbackCheck 之后我确实重新启动了服务器,但没有任何乐趣。感谢您的洞察力。如果它有帮助,文章说结果是 401.1,在我的情况下是 404,几乎好像有什么东西阻止了 IIS 解析主机头,但仅适用于报告查看器(根据我的注释,我绝对可以访问报告管理器/ SSRS WS 由远程客户端上的主机标头甚至。
  • 是的,我也希望是 401 而不是 404,但它的其余部分看起来很像环回检测,我不得不建议它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
相关资源
最近更新 更多