请教关于Visual Studio2005中使用ReportViewer控件的问题!

Jinspet 2009-04-24 01:52:29
环境:SQL Server2005 SP3、SQL Server ReportingService版本同SQL Server2005、
VS2005、ReportViewer控件SP1
问题:在Web页面中使用了ReportViewer控件来展示报表服务器上的报表。在报表服务器的管理器中对该报表添加了“IUSER_***”用户,角色是Browser。将Web程序发布到IIS上,目录安全性匿名访问,在本地访问 该页面可以正常查看报表,在其他机器上第一次访问该地址则在生成报表的时候报错:“ 因为安全原因,此 XML 文档中禁用 DTD。要启用 DTD 处理,将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false,并将该设置传递给 XmlReader.Create 方法”报表的参数列表能正常显示,点击查看报表后报上面的错误,报表的打印按钮、导出、查询等都正常显示,错误信息显示在原本生成报表的区域。关闭浏览器后再次访问同样的地址,则能正常查看报表。
另一个远程的机器,安装有SQL Server Reporting Service,访问同样的地址可以正常查看报表。如果把这个Web站点取消匿名访问,在远程机器第一次访问时输入服务器管理员的用户名和密码(集成Windows验证)同样可以正常查看报表。
尝试过在报表数据库和报表所使用的数据源数据库上添加“IUSER_*”用户,但是没有解决问题。请问使用过ReportingService的高手达人,有没有遇到过类似或相同的情况,有没有比较好的解决方案?因为不可能让客户端关闭浏览器再浏览一次才能看到报表(用户肯定不干)。
...全文
179 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaozhijun0207 2009-04-25
  • 打赏
  • 举报
回复
你的问题,别人很少遇到过,自然没人回复
Jinspet 2009-04-24
  • 打赏
  • 举报
回复
From the error message you provided, there are several reasons which may cause the issues:

First, the error with DTD prohibited usually appears as a result of report processing/rendering running out of memory.
(You can refer this thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=128205&SiteID=1)

Second, from the experience of the community members, the error would happen when you are using a IP-address for the SQL Server Reporting Server, so try to use DNS/Machine name to map your SQL Server instead of IP-address to see if it can work.
(See this thread: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=101047&SiteID=1)



一个回复都没有,太可怜了!!!!
在ASP.NET论坛找到的方法,算是可以接受的,把报表服务器改成主机名而不是IP地址,其他机器访问的时候第一次就不报错了。在同一局域网内或同一AD域内的话应该没问题。

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧