最近在项目中碰到如标题所说的问题,报表服务器版本为sqlserver2008。因为以前是在sqlserver2005下,而2005下是允许匿名访问的(简单设置),所以钻了牛角尖,也想实现2008下的匿名访问,接下来,在网上找了N多资料,中文的,英文的,通过修改报表服务器安装目录下的几个配置文件,并更新一个.dll,不能成功,报错提示还是未经授权,或无法重新启动报表服务,重新配置了几次,报错都不太一样,奇怪。
其实后来静下心来想想,我不一定要匿名访问,只要能访问就可以了,于是立马行动,好不容易找到了,一试,通过,OK!!
(以下部分来自转载,因为转载多次,所以原作者已经不无确认,所以也就不再署名)
在C# FormLoad中作如下处理
private void Form2_Load(object sender, EventArgs e)
{
reportViewer1.ProcessingMode=Microsoft.Reporting.WinForms.ProcessingMode.Remote;
reportViewer1.ServerReport.ReportPath = @"/Sales/Sales Summary";
reportViewer1.ServerReport.ReportPath = @"/Sales/Customer list";
reportViewer1.ServerReport.ReportServerUrl = new System.Uri(@"http://192.168.1.3/reportserver", System.UriKind.Absolute);
this.reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = new System.Net.NetworkCredential(@"Bill1", "Password", @"")//这是report服务器上的本地账号
this.reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = new System.Net.NetworkCredential(@"Bill2", "Pa55word", @"DomainName")//这是域账号
reportViewer1.RefreshReport();
}
测试通过
注意:如果出现数据库异常,这可能与您report报表的数据源设置有关系,如果您的数据源设置为windows集成验证,而当前登录用户对数据库没有权限,就会造成数据库连接异常
|