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

时间:2016-03-28 19:22:07

标签: asp.net excel iis ms-office windows-server-2008-r2

我试图在Windows Server 2008 R2上的IIS上发布网站。我的网站有一个功能,下载excel文件以应用一些编辑,然后再次上传。 当访问要下载的excel文件时,我收到此错误:"无法加载文件或程序集' Microsoft.Office.Interop.Excel,Version = 15.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c&#39 ;或其中一个依赖项。系统找不到指定的文件。"

获取文件的代码:

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操作系统的个人电脑上运行它并且它运行良好。 我想我错过了一些必须存在于服务器上的配置或文件。

经过几天的搜索,我找到了很多解决方案,但它并没有像我一样: - 安装Office 2010 - 在DCOM配置中自定义Microsoft Excel应用程序以允许访问IIS_User和NETWORK SERVICE - 添加Microsoft.Office.Interop.Excel作为参考 - 来自web.config的评论装配线

我该怎么办?

提前致谢

3 个答案:

答案 0 :(得分:2)

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

您可能需要检查的其他内容是,您的应用池中的启用32位应用程序设置为True。

答案 1 :(得分:0)

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

  1. 在您的本地PC上安装Office 2010。
  2. 添加对项目的引用 来自visual studio> COM> Microsoft office 14.0 Object Libaray。
  3. 构建和发布网站。
  4. 用旧的替换旧的已发布文件夹 新的。
  5. 确保您的服务器具有相同的办公室版本 " 2010"你安装在本地电脑上。
  6. 最后,它有效

答案 2 :(得分:0)

1:在客户端计算机中安装Microsoft Office 2:检查当前bin目录中的Microsoft.Interop.Office.Excel是否为错误版本。