0

问题:

我们有一个 asp.net reportviewer,它动态地将数据集分配给 .rdlc,在我的本地机器上它工作得非常好,当我们发布到网络服务器并尝试运行它时会发生错误。

错误:

An error occurred during local report processing.
    The report definition for report 'C:\Program Files (x86)\Acumatica ERP\WRIGHTACUMATICA\rErrorCompilation.rdlc' has not been specified
        Could not find file 'C:\Program Files (x86)\Acumatica ERP\WRIGHTACUMATICA\rErrorCompilation.rdlc'.

附加信息:

错误中指定的目录不在服务器上。temp 是分配的数据集。

C#:

this.rvErrorCompilation.Reset();
                    this.rvErrorCompilation.LocalReport.ReportPath = Server.MapPath("~/rErrorCompilation.rdlc");
                    ReportDataSource rds = new ReportDataSource("dsErrorCompilation", temp);
                    this.rvErrorCompilation.LocalReport.DataSources.Clear();
                    this.rvErrorCompilation.LocalReport.DataSources.Add(rds);
                    this.rvErrorCompilation.DataBind();
                    this.rvErrorCompilation.LocalReport.Refresh();

ASP.NET:

<rsweb:ReportViewer ID="rvErrorCompilation" runat="server" Width="100%">
            <LocalReport ReportPath="rErrorCompilation.rdlc">
            <DataSources>
                <rsweb:ReportDataSource />
            </DataSources>
        </LocalReport>
            </rsweb:ReportViewer>

问题:

  1. 为什么会这样?
  2. 我该如何解决?
4

2 回答 2

0

Microsoft Visual Studio 显然没有在发布时复制 .rdlc 文件,即使已指定这样做,在手动将其移动到 Web 根目录后,它现在可以正常工作。

于 2013-01-03T13:35:10.383 回答
0

尝试这个:ReportPath="~/rErrorCompilation.rdlc"

<rsweb:ReportViewer ID="rvErrorCompilation" runat="server" Width="100%">
        <LocalReport ReportPath="~/rErrorCompilation.rdlc">
        <DataSources>
            <rsweb:ReportDataSource />
        </DataSources>
    </LocalReport>
        </rsweb:ReportViewer>
于 2013-01-03T00:06:38.040 回答