使用oracle数据库一个多月依赖这问题一直都得不到解决,最近任务不是很忙了,所以决定把这问题解决掉。写一篇文章做记录。
以上错误主要是net程序oracle数据库使用了Microsoft Enterprise Library 5.0
类库访问oracle数据库,其具有优秀的访问不通数据库的能力。使用方法不对也同样出现错误。解决办法是下载http://www.microsoft.com/en-us/download/confirmation.aspx?id=15104最新的类库并安装,安装后到安装目录获取需要的程序集到程序bin目录里面去(如果是类库的话也是放到类库bin目录去,生成解决方案后引用的dll自动会在web的bin目录去)如引用下面的
using Microsoft.Practices.EnterpriseLibrary.Data;
Microsoft.Practices.EnterpriseLibrary.Common;
Microsoft.Practices.EnterpriseLibrary.Logging;
...
引用类库后需要在配置文件配置,把下面的配置复制到配置文件上面去就ok了,注意的地方主要是程序集版本和数据库连接字符串,只要配置真确都没问题:
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
</configSections>
<dataConfiguration defaultDatabase="ccnf_ora"/>
<connectionStrings>
<add name="ccnf_ora" connectionString="Data Source=database;Password=dbpassword;User ID=username;max pool size=10000" providerName="System.Data.OracleClient"/>
</connectionStrings>
</configuration>
特别注意的是配置文件里面的Version=5.0.414.0,版本需要跟程序引用的版本一样,否则同样报以上的错误。
Could not load file or assembly 'Microsoft.Practices.EnterpriseLibrary.Common, Version=5.0.414.0, ...