string conStr=@"Provider=Microsoft.Jet.OLEDB.4.0 ;Extended Properties=Excel 8.0;Data Source =C:\aa\1.xls";
var con = new System.Data.OleDb.OleDbConnection(conStr);
if (con.State != ConnectionState.Closed)
{
con.Close();
}
con.Open();
在32位下是能成功打开的,,
但是
在64位下操作系统中就会报错,"未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序"
求 在64位下面连接字符,,
var con = new System.Data.OleDb.OleDbConnection(conStr);
if (con.State != ConnectionState.Closed)
{
con.Close();
}
con.Open();
在32位下是能成功打开的,,
但是
在64位下操作系统中就会报错,"未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序"
求 在64位下面连接字符,,
1生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
2.在对应的 IIS 应用程序池中,“设置应用程序池默认属性”/“常规”/"启用32位应用程序",设置为 true。除了这2种方法没有其他方法了么!
IIS上面应用池中启用32位程序
或者你可以使用Microsoft.ACE.OLEDB.12.0,这个支持64位
http://blog.sina.com.cn/s/blog_557194c30100wvit.html
解决方案如下:
1、执行cscript.exe %SYSTEMDRIVE%inetpubadminscriptsadsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
2、执行%SYSTEMROOT%Microsoft.NETFrameworkv2.0.50727aspnet_regiis.exe -i
3、web服务扩展ASP.NET v2.0.50727 (32-bit) 修改为允许状态