在 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 中开发。
看起来这个问题有两种解决方案:安装一些东西(首选)或切换到 32 位模式。我想了解这两种解决方案的含义,因为这些服务器上运行着其他应用程序,并且更改服务器需要大量时间并且非常痛苦。
- 安装 Microsoft Access Database Engine 2010 Redistributable可以改变这种情况吗?也许我应该安装另一个版本/其他东西?资料来源:http ://www.arboundy.com/2010/11/the-microsoft.ace.oledb.12.0-provider-is-not-registered-on-the-local-machine/
- 遵循http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/405f5bb5-87a3-43d2-8138-54b75db73aa1.mspx?mfr=true上的说明是否意味着该服务器上的所有应用程序都将在32位模式?如果我将应用程序的设置从 64 更改为 x86,是否有必要这样做?我当前的配置是“任何 CPU”,如果我将其设置为 32 位,我会失去什么?
- 编辑:似乎有第三种解决方案,将 dll 直接放在我的应用程序中。这是一个好的解决方案吗?应该是哪个dll?