asp.net 访问 access出现 ole_connection.ServerVersion引发了System.InvalidOperationException的解决
今天在一臺電腦上使用asp.net訪問access,出現(xiàn)了
ole_connection.ServerVersion引發(fā)了System.InvalidOperationException;
下面是解決過程;
先看下異常的情況;
為了認識錯誤的根源,展開看更細節(jié)的異常情況;
此時連接字符串的兩種寫法都試過了;
conn_str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='xxxx.mdb'";
conn_str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='xxxx.mdb'";
所以不是這個的問題;
參考此文;
http://wangbin840403.blog.163.com/blog/static/21271097201342310550841/
在注冊表中查看Provider的訪問權(quán)限;
搜索項;
看下12.0和4.0兩個提供者都是存在的;
繼續(xù)再搜Microsoft.Jet.OLEDB.4.0,下面這個也有Microsoft.Jet.OLEDB.4.0,但不是本項目使用的提供者;
看下Microsoft.Jet.OLEDB.4.0的訪問權(quán)限;
添加Everyone的完全控制權(quán)限后如下;
對12.0也同樣添加權(quán)限;
結(jié)果還是一樣的錯誤;
是否本機不存在Microsoft.Jet.OLEDB.4.0的DLL呢;搜索下C盤,這貨還是在的;
那么12.0使用的是哪個DLL呢?
如果沒有12.0的提供者;根據(jù)網(wǎng)上資料可在
http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe
下載后安裝即可;
現(xiàn)在連接字符串沒問題;提供者也有;注冊表權(quán)限也正常;那么可能是本機某些配置限制了對OLEDB引擎的訪問;
下面把另一個可在另一臺電腦運行的C#操作Access的程序拷貝到本機,下斷點看一下;是一樣的情況;
可知是本機的電腦配置問題;
總結(jié)
以上是生活随笔為你收集整理的asp.net 访问 access出现 ole_connection.ServerVersion引发了System.InvalidOperationException的解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Access和Access VBA学习总
- 下一篇: asp.net三层架构连接Oracle