English 中文(简体)
Reporting Services 2005:当从RenderingExtension调用ReportExecution2005.asmx时返回401访问被拒绝。
原标题:
  • 时间:2009-03-25 12:48:21
  •  标签:

我有一个报告服务的渲染扩展程序,它使用ReportExecution2005.asmx服务来执行多个“子报告”,然后将结果放入PowerPoint演示文稿中。

一个典型的使用场景是进入报告管理器,选择我的“Powerpoint”报告,它仅用作传递给“子报表”参数的占位符。然后我从导出格式列表中选择我的扩展名,点击导出,它运行扩展并将pptx文件返回给我。

这在我们的生产和测试服务器上都很好运行。但是我在设置另一个测试服务器时遇到了一个非常奇怪的问题。

任何由分机拨打的WebService呼叫将返回“401访问被拒绝”的错误(无更多子状态信息可用)。

Things I ve tried without success: - allow physical access to the folder structure of the ReportServer virtual directory to everyone. And I mean literally everyone - ASPNET, NETWORK SERVICE, Everyone, the account I usually use to log in, which is an admin and owner of the folder - use reporting manager to set up the security on the reporting services side. Again, every conceivable user/group account which could be involved was given every conceivable role. - allow anonymous access to the ReportServer web app. - enabled impersonation on the ReportServer web app. - hardcoded the user credentials to use when calling the webservice (by default it just uses System.Net.CredentialCache.DefaultCredentials)

我还制作了一个小测试网站,与渲染扩展完全相同,使用ReportExecution服务,从网站上,Web服务器验证正常,并允许我调用Web服务,所以显然问题不在于Web服务安全设置本身。

开始扯我的头发了。作为最后的办法,我快要重新安装报告服务,但在此期间(或者如果这没有帮助)——如果有人遇到类似的情况,我非常感激任何输入。

问题回答

我在迁移一个调用ReportExecution2005 Web服务的ASP.NET项目时看到了类似的行为。当在我的本地机器上运行时,一切都正常。但当我将它迁移到我们的开发服务器上时,我开始遇到401错误。在我们的情况下,需要在开发服务器上配置Kerberos,以委托凭据到SSRS框。

您可能需要验证新服务器是否会将其凭据委派给SSRS机器,并查看是否有所不同。

希望这能帮到你。

比尔





相关问题
热门标签