与Windows 2008 R2服务器上的Microsoft.Office.Interop.Excel程序集问题

我们的任务是以编程方式运行excelmacros。

在本地环境中,当我们按照以下步骤时,它工作正常:

1。

Microsoft.Office.Interop.Excel.Application appExcel = new Microsoft.Office.Interop.Excel.Application(); 

2。

 Microsoft.Office.Interop.Excel.Workbook workBook = appExcel.Workbooks.Open("FilePath", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);` 

3

  appExcel.Run("Macro name", "$W$5", 1, 0, "$Q$11:$Q$112", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

注意:

在本地主机上,一切工作正常,macros正在执行。 但是,在IIS(7.5版)中托pipe时,function无法正常工作。

为此,我们所做的改变是:

  1. 控制面板 – >pipe理工具 – >组件服务计算机 – >我的电脑 – > DCOMconfiguration – > Microsoft Excel应用程序 – >属性

    1.1。 在安全选项卡中,我们通过添加用户(IUSR)并给予他所有访问权限来定制所有权限。

    在做这些修改之后,我们可以创buildInterop.Excel的实例。 但是我们无法打开工作簿。

    1.2。 在“Microsoft Excel应用程序性能”的“标识”选项卡中,默认select“启动用户”。

    将值更改为“交互式用户”后,我们可以打开工作簿。

    但是我们无法运行这个macros。

    1.3。 C:\ WINDOWS \ system32 \设置\ systemprofile

    在这个位置我们创build了桌面文件夹。 对于此文件夹属性,在安全选项卡中,我们创build了用户(IUSR)并给予完全控制权。

现在,即使在IIS托pipe的站点上运行应用程序,我们也可以运行macros并获取所需的输出。

问题:

在将更改移至生产服务器后进行所有更改后,我们无法在DCOMconfiguration中findMicrosoft Excel应用程序。 Microsoft Office未完全安装在生产服务器上。 只有Excel软件安装在服务器上。

我们在下面的代码行得到空引用exception。

 Microsoft.Office.Interop.Excel.Workbook workBook = appExcel.Workbooks.Open("FilePath", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

我们的生产服务器运行在Windows 2008 R2上。

请问任何人都可以提出正确的方法来解决这个问题。