我以前写了一些程序,用到IBATIS.NET来连接数据库,数据库连接字符串没有错误,路径也没有错误,在我以前的Windows Server 2008上运行没有问题,但是当我系统升级到Windows Server 2008 R2的时候,在安装和运行这个程序,就老是抛出,这个异常:Unable to open connection to "OleDb, provider V2.0.0.0 in framework .NET V2".在网上,搜索了很久,都没有找到答案,只有请教各位了!还有,要说明的是我连接的是Access数据库.
IBATIS.NET的slqmap.config文件如下:
<?xml version="1.0" encoding="utf-8"?>
<sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<!-- Rem : If used via a DataAccess context, properties tag will be ignored -->
<!--指定从application的根目录进行加载-->
<!--<properties resource="database.config"/>-->
<settings>
<!--
<setting useStatementNamespaces="${useStatementNamespaces}"/>
-->
<setting cacheModelsEnabled="true"/>
<setting validateSqlMap="true"/>
<setting useStatementNamespaces="false"></setting>
</settings>
<!-- Optional if resource -->
<!--<providers resource="../VodIC.Service/providers.config"/> -->
<!--embedded指定文件可以作为程序集的资源文件进行加载-->
<!---->
<providers embedded="HENU.IISCompanion.Service.providers.config,HENU.IISCompanion.Service"/>
<!-- ==== SqlClient configuration ========= -->
<!-- Rem : If used via a DataAccess context, database tag will be ignored -->
<database>
<provider name="OleDb1.1"/>
<!--<dataSource name="VodDatabase" connectionString="user id=${username};password=${password};data source=${datasource};database=${database};Integrated Security=${sspi};Connect Timeout=30;"/>-->
<dataSource name="Access" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
</database>
<sqlMaps>
<!-- user via embedded-->
<!---->
<sqlMap embedded="HENU.IISCompanion.Service.Maps.WebSite.xml,HENU.IISCompanion.Service"/>
<sqlMap embedded="HENU.IISCompanion.Service.Maps.FtpSite.xml,HENU.IISCompanion.Service"/>
<sqlMap embedded="HENU.IISCompanion.Service.Maps.FtpVirDir.xml,HENU.IISCompanion.Service"/>
<sqlMap embedded="HENU.IISCompanion.Service.Maps.ServerInfo.xml,HENU.IISCompanion.Service"/>
</sqlMaps>
</sqlMapConfig>
IBATIS.NET的providers.config文件如下:
<provider name="OleDb1.1"
description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"
enabled="true"
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.OleDb.OleDbConnection"
commandClass="System.Data.OleDb.OleDbCommand"
parameterClass="System.Data.OleDb.OleDbParameter"
parameterDbTypeClass="System.Data.OleDb.OleDbType"
parameterDbTypeProperty="OleDbType"
dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""
allowMARS="false"
/>
<provider name="OleDb2.0"
description="OleDb, provider V2.0.0.0 in framework .NET V2"
enabled="true"
assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.OleDb.OleDbConnection"
commandClass="System.Data.OleDb.OleDbCommand"
parameterClass="System.Data.OleDb.OleDbParameter"
parameterDbTypeClass="System.Data.OleDb.OleDbType"
parameterDbTypeProperty="OleDbType"
dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
usePositionalParameters="true"
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""
allowMARS="false"
/>
请指教。
你首先也还试试 把那个 连接数据库的 字符串 换为 绝对路径试试 ,
如果没问题就不是这个原因
如果有问题可能是这个地方相对路径的写法还是有问题 。 然后去百度下
我有次就是这里出啦问题 ,, 路径 写法 具体查下
怎么解决的?