无法加载文件或程序集 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
我正在尝试在 Windows Server 2008 R2 的 IIS 上发布网站。我的网站具有下载 excel 文件以应用一些编辑然后再次上传的功能。
访问要下载的 excel 文件时出现此错误:"Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified."
获取文件的代码:
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();
我确定我的代码很好,因为我在我的个人电脑上 运行 它有 Windows 10 OS 和 Office 2013,它运行完美。
我想我错过了服务器上必须存在的一些配置或文件。
经过几天的搜索,我找到了很多解决方案,但它们对我不起作用,例如:
- 安装 Office 2010
- 在 DCOM 配置中自定义 Microsoft Excel 应用程序以允许访问 IIS_User 和网络服务
- 添加 Microsoft.Office.Interop.Excel 作为参考
- 从 web.config
评论流水线
我该怎么办?
提前致谢
如果您不打算在您的网络服务器上安装 Office 2013,那么您将需要在发布您的网站时复制这些库。在您的 Visual Studio 项目中,您需要将 Interop 程序集的 Copy Local 设置为 True。这样,当您发布网站时,引用的库将与您的网站一起复制,并从复制的文件中引用。
您可能需要检查的其他事项是您的应用程序池中的启用 32 位应用程序设置为 True。
我发现的另一种方法在尝试后解决了:
- 在本地 PC 上安装 Office 2010。
- 添加对您的项目的引用
来自 visual studio > COM > Microsoft office 14.0 Object Libaray。
- 建立并发布网站。
- 将旧的已发布文件夹替换为
新的。
- 确保你的服务器有相同的office版本
您在本地 PC 上安装的“2010”。
- 终于成功了
1: 在客户端机器上安装 Microsoft Office
2:检查 Microsoft.Interop.Office.Excel 是否存在您的 bin 目录中的错误版本。
我正在尝试在 Windows Server 2008 R2 的 IIS 上发布网站。我的网站具有下载 excel 文件以应用一些编辑然后再次上传的功能。 访问要下载的 excel 文件时出现此错误:"Could not load file or assembly 'Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified."
获取文件的代码:
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();
我确定我的代码很好,因为我在我的个人电脑上 运行 它有 Windows 10 OS 和 Office 2013,它运行完美。 我想我错过了服务器上必须存在的一些配置或文件。
经过几天的搜索,我找到了很多解决方案,但它们对我不起作用,例如: - 安装 Office 2010 - 在 DCOM 配置中自定义 Microsoft Excel 应用程序以允许访问 IIS_User 和网络服务 - 添加 Microsoft.Office.Interop.Excel 作为参考 - 从 web.config
评论流水线我该怎么办?
提前致谢
如果您不打算在您的网络服务器上安装 Office 2013,那么您将需要在发布您的网站时复制这些库。在您的 Visual Studio 项目中,您需要将 Interop 程序集的 Copy Local 设置为 True。这样,当您发布网站时,引用的库将与您的网站一起复制,并从复制的文件中引用。
您可能需要检查的其他事项是您的应用程序池中的启用 32 位应用程序设置为 True。
我发现的另一种方法在尝试后解决了:
- 在本地 PC 上安装 Office 2010。
- 添加对您的项目的引用 来自 visual studio > COM > Microsoft office 14.0 Object Libaray。
- 建立并发布网站。
- 将旧的已发布文件夹替换为
新的。 - 确保你的服务器有相同的office版本 您在本地 PC 上安装的“2010”。
- 终于成功了
1: 在客户端机器上安装 Microsoft Office 2:检查 Microsoft.Interop.Office.Excel 是否存在您的 bin 目录中的错误版本。