无法加载文件或程序集“Microsoft.Office.Interop.Excel,Version = 15.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c'

我正在尝试在Windows Server 2008 R2上的IIS上发布网站。 我的网站有一个function,下载一个Excel文件来应用一些编辑,然后再次上传。 当访问Excel文件被下载时,我得到这个错误:“无法加载文件或程序集”Microsoft.Office.Interop.Excel,版本= 15.0.0.0,文化=中立,PublicKeyToken = 71e9bce111e9429c“或其依赖之一。系统找不到指定的文件。“

得到的代码文件:

clsExcel = new ApplicationClass(); clsExcel.Visible = false; clsWorkbook = clsExcel.Workbooks.Open(Server.MapPath("/file path ... "), 2, false, 5, "", "", true, XlPlatform.xlWindows, "", false, true, 0, false, true, XlCorruptLoad.xlNormalLoad); // get worksheet 4 ... clsWorksheet = (Worksheet)clsWorkbook.Worksheets[4]; clsWorksheet.get_Range("A2", "D1000").EntireRow.Delete(); clsWorkbook.Save(); clsWorkbook.Close(false, "", false); // release... clsExcel.Quit(); 

我敢肯定,我的代码是好的,因为我在个人电脑上运行它,它具有Office 2013的Windows 10操作系统,并且完美运行。 我想我错过了一些必须存在于服务器上的configuration或文件。

经过几天的search,我发现了很多解决scheme,但它不像我这样工作: – 安装Office 2010 – 在DCOMconfiguration中自定义Microsoft Excel应用程序以允许访问IIS_User和NETWORK SERVICE – 将Microsoft.Office.Interop.Excel添加为参考 – 从web.config注释assembly线

我该怎么办?

提前致谢

如果您不打算在您的Web服务器上安装Office 2013,那么当您发布您的网站时,您将需要复制这些库。 在您的Visual Studio项目中,您需要将Interop程序集的“复制本地”设置为True。 这样,当你发布你的网站时,被引用的库将与你的网站一起复制,并从复制的文件中引用。

还有一些你可能需要检查的是在你的应用程序池中启用32位应用程序设置为True。

另一种方式,我发现和尝试后,它解决了:

  1. 在本地PC上安装Office 2010。
  2. 从Visual Studio> COM> Microsoft office 14.0 Object Libaray添加对项目的引用。
  3. build立和发布网站。
  4. 用旧的发布文件夹replace
    新的那一个。
  5. 确保您的服务器具有与本地PC上安装的“2010”相同的办公室版本。
  6. 最后,它的工作

1:在客户端计算机2中安装Microsoft Office:检查Microsoft目录。