[英]Crystal Reports for Visual Studio 2010 Error
我試圖從使用ASP.NET 4.0和Visual Studio 2010構建的Web應用程序中運行水晶報表。我已經從SAP網站( http://www.businessobjects.com/jump/xi/crvs2010)安裝了以下報表/us2_default.asp )
1)SAP Crystal Reports,Visual Studio 2010的版本-標准EXE安裝程序包,可將軟件安裝到Visual Studio IDE中。
2)適用於.NET Framework 4(64位)的SAP Crystal Reports運行時引擎
我有一個名為Reports.aspx的頁面,其中有一個水晶報表查看器控件
<CR:CrystalReportViewer ID="rptViewer" runat="server" AutoDataBind="true" />
在Reports.aspx.cs文件中,我具有以下代碼:
protected override void OnPreRender(EventArgs e)
{
ReportDocument report = new ReportDocument();
var path = Server.MapPath("Reports/Sample.rpt");
report.Load(path);
report.SetDatabaseLogon("username", "password", "servername", "databasename");
rptViewer.ReportSource = report;
}
在report.Load(path)行上,出現以下錯誤:
不支持的操作。 JRC引擎處理的文檔無法在C ++堆棧中打開。
我怎樣才能解決這個問題?
我也遇到了同樣的問題,我的問題是報告路徑無效,可能是您遇到了同樣的問題,請檢查Server.MapPath(“ Reports / Sample.rpt”)返回有效路徑嗎?
確保該報告位於app_code
文件夾中,而不是初始化reportdocument並在其中加載報告,請初始化該報告的新實例。
Sample report = new Sample();
這對我有用
您將需要修改.rpt文件中的兩個屬性:
重建,構建部署程序包並發布。 做完了!
注意:下面,術語“ WebSite”是指IIS中的實際網站節點,而不是網站中的虛擬目錄。
問題根源:應用程序沒有可訪問的“ aspnet_client”文件夾。
發生這種情況有幾個原因:
問題解決方案(對於Windows Server 2008 R2)
當我將網站轉換為Web應用程序時遇到了這種情況。 該報告可以在我的開發機上正常運行,但不能在服務器上運行。 然后我意識到服務器上缺少 rpt文件!
默認情況下,報告文件被視為嵌入式資源,並且在發布Web應用程序時不會被復制。 我只是單獨更改了它們,重新發布了網站,一切都恢復了。
如果我在Crystal Reports Designer中錯誤地打開了報告文件,則報告加載也會失敗。
此錯誤是真正的解決方法,並且似乎有許多可能的前提。 幸運的是,我在自己的特定版本上只浪費了一天:
ReportDocument.Load()
也制作本地臨時副本。 (這可能僅在從網絡驅動器位置進行加載的情況下進行,對於本地加載情況,我沒有進行測試。)
如果發生加載的用戶上下文沒有權限在本地創建臨時文件,則Load
將失敗,並出現同樣非常無用的錯誤。
另外,我最終使用Process Monitor對此進行了診斷。 這也可能對您有幫助。
將“水晶報表引擎”重新安裝到服務器
構建操作設置為“內容”。
它對我來說完美。
請確保您的報告rpt文件位於其原始文件夾中。 在將MVC網站“發布”到IIS之后,我首先遇到了相同的錯誤。 我沒有意識到“發布”沒有將rpt文件放入包中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.