水晶報表拒絕訪問

拒絕訪問。

 

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。 

異常詳細信息: System.Runtime.InteropServices.COMException: 拒絕訪問。

源錯誤: 

行 32:         string reportPath = Server.MapPath("test.rpt");
行 33:         string rtPath = Server.MapPath("XMLSchema2.xsd");
行 34:         customerReport.Load(reportPath);        
行 35:         //DataSet dataSet = DataSetConfiguration.CustomerDataSet;
行 36:         //DataSet dataset = DbHelperSQL.Query(sql);

源文件: c:/Inetpub/wwwroot/DataSets/report.aspx.cs    行: 34 

堆棧跟蹤: 

[COMException (0x80004005): 拒絕訪問。
]
   CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +144
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +526

[CrystalReportsException: 加載報表失敗。]
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +621
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +1969
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +186
   _report.ConfigureCrystalReports(String sql1, String sql2, String check) in c:/Inetpub/wwwroot/DataSets/report.aspx.cs:34
   _report.Page_Init(Object sender, EventArgs e) in c:/Inetpub/wwwroot/DataSets/report.aspx.cs:334
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnInit(EventArgs e) +99
   System.Web.UI.Page.OnInit(EventArgs e) +12
   System.Web.UI.Control.InitRecursive(Control namingContainer) +333
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +378

 

 

用vs 2008 自帶的水晶報表開發的。本來在本地和部署到服務器是沒有問題的。昨天本機突然就不行了。我沒有搞任何代碼,所以報表程序是沒有問題的。問題一定出在電腦(環境)上。網上沒找到解決方法,自己就一直實驗……就差沒重裝系統了。

終於發現原來是temp 文件夾沒有權限,C:/WINDOWS/temp,水晶報表在生成的過程中需要創建緩衝文件,這些緩衝文件都會生成到系統默認緩衝區中。所以這個temp文件夾必須要要給IIS登陸賬號一個可寫權限,否則將會報錯。

解決辦法:找到系統指定的緩衝文件夾(C:/WIONDOWS/TEMP)(可以在環境變量中查看),然後點擊屬性->安全->組和用戶名稱->User權限 設置相應的權限,我給了個完全控制的權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章