【问题标题】:SQL Server 2005 Reporting Services and the Report ViewerSQL Server 2005 Reporting Services 和报表查看器
【发布时间】:2010-04-01 16:07:45
【问题描述】:

我在将报告嵌入到 aspx 页面时遇到问题。

这是我的设置:
1 台运行 SQL Server 2005 和 SQL Server 2005 Reporting Services 的服务器
1 个运行 XP 和 VS 2005 的工作站
服务器不在域中。
Reporting Services 是默认安装。

我在名为 TestReports 的文件夹中使用共享数据源有一份名为 TestMe 的报告。

如果我在报表管理器中查看报表,它会呈现正常。如果我使用 http://myserver/reportserver url 查看报告,它会呈现正常。如果我使用 http://myserver/reportserver?/TestReports/TestMe 查看报告,它会呈现正常。如果我尝试使用 http://myserver/reportserver/TestReports/TestMe 查看报告,它只会转到主目录的文件夹导航页面。

我的 Web 应用程序冒充某个特定的人以绕过不在域中的服务器。当我使用 http://myserver/reportserver 作为服务器和 /TestReports/TestMe 作为路径从报告查看器调用报告时,我收到此错误:

出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递给 XmlReader.Create 方法。

当我将服务器更改为 http://myserver/reportserver?运行报告时出现此错误:

客户端发现响应内容类型为“”,但预期为“文本/xml”。请求失败,响应为空。

我已经搜索了一段时间,但没有找到任何可以解决我的问题的方法。如果需要更多信息,请告诉我。

提前致谢,
肯德拉

【问题讨论】:

    标签: sql sql-server-2005 reporting service reportviewer


    【解决方案1】:

    SSRS 有两个感兴趣的虚拟目录。

    http://myserver/reportserver 是 Web 服务所在的位置。 http://myserver/reports 是报表管理器界面所在的位置。

    http://myserver/reportserver?/TestReports/TestMe 之所以有效,是因为您要访问 Web 服务并传入所需报告的“地址”参数。注意 ?在里面,说明剩下的是查询字符串参数

    http ://myserver/reportserver/TestReports/TestMe 正在尝试进入虚拟目录的子目录,但实际上并不存在。

    要让您的系统使用匿名访问正常工作,您需要告诉 IIS 以已知用户身份运行您网站的应用程序池,该用户有足够的权限来查看报告。您可以在报告管理器 (http://myserver/reports) 中进行设置。

    看看你的表现 - 祝你好运。

    【讨论】:

    • 我很困惑为什么我需要匿名访问报告服务,除非那是 http://myserver/reportserver/TestReports/TestMe 试图做的。不过,我试了一下。我已经在报表服务中设置了一个有权运行报表的用户。在 IIS 中,我将应用程序池标识更改为以所述用户身份运行。我结束了一项服务不可用。一旦我将应用程序池改回网络服务,它就恢复了活力。
    • 您正试图让应用程序以非当前用户的身份运行。您正在模拟一个特定帐户,因此您需要授予该帐户在 SSRS 中执行操作的权限。听起来你已经这样做了。 DTD 错误是您需要修复的错误。试试forums.asp.net/t/1180524.aspx 的底部建议,看看是否有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多