方法一、
1.命令行键入:
cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
即设置IIS6允许32位程序运行在64位机器上
2.重新注册.net FrameWorks
%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
3.完成之后,在IIS中web扩展应该会看到多出一个32位的asp.net,点击允许
方法二、
c#读 Excel 出现了如下问题
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。System.Data
在网上多方找资料也没找到好的解决方法。简单的程序代码如下:
DataSet ds;
try
{
OleDbConnection cnn = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;data source=" + ofdPhoneFile.FileName + ";Extended Properties=Excel 8.0;");
OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [Sheet1$]", cnn);
cnn.Open();
ds = new DataSet();
cmd.Fill(ds);
cnn.Close();
}
catch (System.Data.OleDb.OleDbException ex)
{
MessageBox.Show(ex.Message, "出错啦!", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。System.Data
需要注意的问题和解决方法:
1.Microsoft.Jet.OLEDB.4.0不要写成Miscrosoft.Jet.OLEDB.4.0,;
2.Data Source不要写成“Data Sourse”,
3.检查是否安装了Office
4.重新安装注册MDAC28.exe (一般你的vs安装目录里有或者到微软的官方网站上下)
5.如果是64位平台,也可能出现这种情况;
解决方法:生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86
——————————————————————————————————————
确认Msjet40.dll 版本
1.检查链接字符串书写是否正确,"Provider=Microsoft.Jet.Oledb.4.0;Data Source=数据库路径"
拼写无误,问题仍存在
2.注册组件 regsvr32 msjetoledb40.dll 问题依然存在
3.重新安装MDAC28.exe,无奈问题还存在。
网上关于这个错误的解决办法一般就以上三种,那我的问题出现在哪里呢?会不会是权限问题?
4.打开注册表(开始菜单--》运行--》regedit),搜索“Microsoft.Jet.Oledb.4.0”,查看权限,发现未给iis_wpg读取权限。
于是给“Microsoft.Jet.Oledb.4.0”项加上Everyone读取权限。