2015-05-18 28 views
7

我有一个问题,我已经得出结论,它是机器的具体基础,但我想知道,如何解决它,以防万一它出现在另一台机器。ReportViewer 2010,IO.Exception

我开发了I WPF项目(.NET 4),我使用Installshield LE安装。该计划的先决条件也是ReportViewer 2010,我之前安装(如果需要)。

我已制作的节目的装置,以下列机器:

  1. 视窗7 64位SP1
  2. 视窗7 32位
  3. 视窗XP SP3(情况1)
  4. 视窗XP SP3(情况2)
  5. 的Windows XP SP3(情况3)

在所有吨他机器上面我的报告中运行得很好,除了#5(案例3),在那里我得到以下错误:

Microsoft.Reporting.WinForms.LocalProcessingException: An error occurred during local report processing. ---> 
    Microsoft.Reporting.DefinitionInvalidException: The definition of the report '' is invalid. ---> 
    Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: An unexpected error occurred in Report Processing. ---> 
    System.IO.IOException: The process cannot access the file 'C:\Documents and Settings\<WindowsLogOnName>\Local Settings\Temp\expression_host_2e380b8068bb4ef5a53225faab4ebcb4.dll' because it is being used by another process. 

所有的机器打相同的数据库,我测试的报告是在每一个相同案件。

有没有人遇到过这个错误,并有任何线索?

+0

已尝试清除临时文件夹,然后再次运行您的应用程序? –

+0

是否可以将其安装在另一个文件夹中?我经常会发现,我花更多时间来研究像这样的CR问题,而不是开发应用程序所需的时间。 – Apostrofix

+0

如果这是一个数据库文件,请尝试将扩展名重命名为其他名称。防病毒软件将对系统中新增的dll执行检查,并在此过程中锁定文件。 –

回答

3

我听说过阻止访问localreport临时文件的恶意软件和防病毒程序,因为报告中的表达式基本上都是VBScript。尝试禁用这些并再次尝试。 Here is the only source I have found on this

否则,几件事尝试:

  1. 上都RDLC和临时文件检查文件权限。 NETWORK SERVICES以及ASP.NET用户帐户都需要访问这些帐户。确保它具有FULL CONTROL,因为它需要执行权限以及读取和写入。
  2. 检查磁盘空间
  3. 尝试使用进程监视器(如Process Explorer)来查看是否有其他程序保留在文件句柄上。
  4. 尝试删除临时文件并重新启动或回收应用程序池。
  5. 也许冲刷你的事件查看器可能找到关于这个问题的更多信息?

如果这些都不起作用,那么最好直接向MS报告问题。

相关问题