发布的报告不起作用 - 数据库登录失败错误

published reports don't work - Database logon failed Error

我正在开发一个简单的 Web 应用程序,它在 VS 2013 上创建了 3 个报告,出于某种原因,这些报告 运行 在开发人员模式下很好,但是当我发布网站时,他们给我 "Database logon failed"错误。是什么原因造成的? VS 安装在我发布报告的同一台服务器上。我已经创建了一个本地管理员用户,其信息与用于 IIS 身份验证的 ODBC 连接登录用户的信息完全相同,但仍然没有成功。

下面是我的代码:

public partial class OpenWOsWebForm : System.Web.UI.Page
    {
        ConnectionInfo EPAKconnectionInfo = new ConnectionInfo();

        protected void SetConnectionInfo()
        {

            EPAKconnectionInfo.ServerName = ConfigurationManager.AppSettings["EPAK_SERVER_NAME"];
            EPAKconnectionInfo.UserID = ConfigurationManager.AppSettings["EPAK_USER_NAME"];
            EPAKconnectionInfo.Password = ConfigurationManager.AppSettings["EPAK_PASSWORD"];
        }

        private void Page_Init(object sender, EventArgs e)
        {

            ReportDocument report = new ReportDocument();
            report.Load("C:\Delray Beach\Delray Beach\Reports\OpenWOsReport.rpt");
            SetConnectionInfo();
            TableLogOnInfo crTableLogoninfo = new TableLogOnInfo();

            foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in report.Database.Tables)
            {
                crTableLogoninfo = CrTable.LogOnInfo;
                crTableLogoninfo.ConnectionInfo = EPAKconnectionInfo;
                CrTable.ApplyLogOnInfo(crTableLogoninfo);
            }
            foreach (ReportDocument subreport in report.Subreports)
            {
                foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in subreport.Database.Tables)
                {
                    crTableLogoninfo = CrTable.LogOnInfo;
                    crTableLogoninfo.ConnectionInfo = EPAKconnectionInfo;
                    CrTable.ApplyLogOnInfo(crTableLogoninfo);
                }
            }

            OpenWOsViewer.ReportSource = report;

            OpenWOsViewer.ToolPanelView = CrystalDecisions.Web.ToolPanelViewType.None;
        }
    }

谢谢

除了"Database logon failed",还有"Unable to connect: incorrect log on parameters"吗?

如果是这样,试试这个:

并试试这些:

  1. 终止 asp.net 进程(w3wp.exe 或 aspnet.exe)(它将 重启).
  2. 如果您使用的是 XSD 文件,请检查它的位置路径 RPT,再次尝试"set location";如果它不起作用,请尝试删除表格并将它们包括在内(这将很辛苦)。

我多次遇到这个问题,每个案例都通过这些操作之一解决了。

在我的例子中,问题是 IIS Application Pools/ my web app/ Advanced Settings 上的 32 bit Applications 被禁用并且我没有在我的项目中包含 aspnet_client 文件夹,其中 crystal run-times files 是存储,所以当我发布应用程序时,这些文件没有传输。启用连接并包含该文件夹后,问题就解决了。