Reporting Services 2005:从RenderingExtension调用时,ReportExecution2005.asmx返回401 Access Denied

时间:2009-03-25 12:48:22

标签: c# sql-server-2005 web-services iis

我有一个报表服务的呈现扩展程序,它使用ReportExecution2005.asmx服务执行一些“子报表”,然后将结果放在powerpoint演示文稿中。

典型的使用场景是转到报表管理器,选择我的“Powerpoint”报表,该报表仅用作要传递给“子报表”的参数的占位符。然后,我从导出格式列表中选择我的扩展名,然后单击“导出”,它运行扩展程序,它会返回我的pptx文件。

这适用于我们的实时和测试服务器。但是我试图建立另一个测试服务器时遇到了一个非常奇怪的问题。

扩展到webservice的任何调用返回“401 Access Denied”(不再提供其他子状态信息)。

我尝试过的事情没有成功: - 允许对每个人物理访问ReportServer虚拟目录的文件夹结构。我的意思是每个人 - ASPNET,NETWORK SERVICE,Everyone,我通常用来登录的帐户,这是该文件夹的管理员和所有者 - 使用报告管理器在报告服务端设置安全性。同样,可以参与的每个可想到的用户/组帐户都被赋予了每个可以想象的角色。 - 允许匿名访问ReportServer Web应用程序。 - 在ReportServer Web应用程序上启用模拟。 - 硬编码在调用Web服务时使用的用户凭据(默认情况下它只使用System.Net.CredentialCache.DefaultCredentials)

我还做了一个小测试网站,它以与RenderingExtension完全相同的方式使用ReportExecution服务,并且从网站上,Web服务器验证正常并允许我调用Web服务,所以显然问题不是谎言与Web服务安全设置本身。

开始拔我的头发。作为最后的手段,我即将重新安装Reporting Services,但同时(或者如果没有帮助) - 如果有人遇到类似的东西,我会非常感谢任何输入。

1 个答案:

答案 0 :(得分:1)

在迁移名为ReportExecution2005 Web服务的ASP.NET项目时,我看到过类似的行为。在我的本地盒子上运行时,一切都很好。当我将它迁移到我们的开发服务器时,我开始收到401错误。在我们的示例中,需要在开发服务器上配置Kerberos以将凭据委派给SSRS框。

您可能希望验证新服务器是否会将其凭据委托给SSRS计算机,看看是否有任何区别。

希望这有帮助,

比尔