如何启用读取IIS上的C#Excel文件(在IIS正在运行的机器上本地读取它们)工作正常?

在C#中读取Excel文件时遇到问题The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.'Microsoft.ACE.OLEDB.12.0' 。 只有当我在IIS上运行我的应用程序才会发生。 在运行IIS的机器上本地运行它可以正常工作。

所讨论的机器运行在Win2003 R2 Enterprise x64上。 我在VS2010,ASP.Net 4.0开发。

看起来这个问题有两种解决scheme:安装一些东西(首选)或切换到32位模式。 我想了解这两种解决scheme的含义,因为有这些服务器上运行的其他应用程序和更改服务器需要很多时间,是非常痛苦的。

  1. 可以安装Microsoft Access数据库引擎2010 Redistributable更改情况? 也许我应该安装另一个版本/别的东西? 资料来源: http : //www.arboundy.com/2010/11/the-microsoft.ace.oledb.12.0-provider-is-not-registered-on-the-local-machine/
  2. 请按照http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/405f5bb5-87a3-43d2-8138-54b75db73aa1.mspx?mfr=true上的说明进行操作,这意味着此服务器上的所有应用程序都将运行32位模式? 如果我将应用程序的设置从64更改为x86,是否有必要这样做? 我目前的configuration是“任何CPU”,如果我把它设置为32位,我会失去什么?
  3. 编辑:似乎有第三种types的解决scheme,把一个DLL直接在我的应用程序。 这是一个很好的解决scheme吗? 哪个DLL应该是?

您好我现在正在使用Excel在一个项目中,从我所知的添加DLL项目是好的,尤其是如果你无法控制你可以安装在服务器上的东西。 我知道一个大项目就是这样的。 Microsoftbuild议在部署服务器上安装Excel,并使用Interops,这听起来像是你正在做的事情。

我不能在我们的部署服务器上安装excel,因为我们必须将其与其他项目共享,所以我使用了EP Plus ,它可以在nuget上使用,而且非常容易设置和使用。 生成Excel文件需要不到一个小时的时间。 它唯一的缺点是它只生成xlsx文件,这是较新types的Excel文件。

这是一个更简单的方法,它可能更容易,适合您的项目。 如果你想查看,他们的网站上有大量的示例代码。 这只是另一个select,希望对你有用。

Interesting Posts