我试图在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的评论装配线
我该怎么办?
提前致谢
答案 0 :(得分:2)
如果您不打算在Web服务器上安装Office 2013,则需要在发布网站时复制库。在Visual Studio项目中,您需要为Interop程序集将Copy Local设置为True。这样,当您发布站点时,引用的库将与您的站点一起复制并从复制的文件中引用。
您可能需要检查的其他内容是,您的应用池中的启用32位应用程序设置为True。
答案 1 :(得分:0)
我发现的另一种方式,在尝试之后它解决了:
答案 2 :(得分:0)
1:在客户端计算机中安装Microsoft Office 2:检查当前bin目录中的Microsoft.Interop.Office.Excel是否为错误版本。