我遇到了将多表报告部署到IIS服务器的问题。该页面显示:“您请求的报告需要更多信息”。但是,我试图在服务器端设置databaselogon但它不起作用。 (该报告在VS调试模式下正常工作)
令人困惑的是,它只发生在多表报告中,并且在单个表报告中正常工作。
我正在使用VS2008和CrystalReportViewer版本10.
答案 0 :(得分:1)
当您收到“您要求的报告需要更多信息”时,是否会提示您登录?我认为这是需要进行数据库身份验证的标头消息。
如果是这样,您需要了解的是Crystal Reports运行时在ASP.NET服务器的安全上下文中运行的概念。 Crystal Report中的数据库连接可能已设置为使用集成身份验证,这意味着报告将使用ASP.NET进程的凭据对数据库服务器进行身份验证。
在调试模式下,ASP.NET开发服务器作为您的用户帐户运行。毫无疑问,您可以访问数据库。但是,当您尝试在生产模式下运行时,ASP.NET服务器(默认情况下)在IIS服务器上作为名为ASPNET的本地帐户运行,或者作为NetworkService帐户运行,具体取决于您运行的IIS版本。 / p>
如果您运行的是IIS 7.x,则需要为IIS服务器的目录对象(NtDomainName \ ServerName $)提供对数据库的访问权限,或者更改与ASP.NET应用程序关联的应用程序池的安全标识。
希望这会让您走上正轨,如果您仍需要更多帮助,请发布您正在运行的IIS版本以及有关错误消息的更多信息。
对评论的回应:
要配置应用程序池,请在IIS管理器中选择有问题的站点,单击“基本设置...”,然后选中分配给它的应用程序池。然后进入应用程序池,您应该看到列出的池的当前标识。这是应用程序“运行为”的帐户。此帐户需要能够访问Web应用程序中的所有文件和资源,包括MySQL DB。
您可以在池的“高级设置”对话框中编辑“身份”设置。
不幸的是,由于我从未使用过MySQL,因此无法向您提供任何建议。