您的位置:首页 > 其它

NHibernate.Cfg.Configuration”的类型初始值设定项引发异常

2008-03-13 15:36 501 查看
NHibernate.Cfg.Configuration”的类型初始值设定项引发异常
using NHibernate;
using NHibernate.Cfg;

Configuration cfg = new Configuration();

“NHibernate.Cfg.Configuration”的类型初始值设定项引发异常。
是怎么回事,我引入了dll和命名空间
[分析1]
进一步察看错误提示,有这样的InnerException:

{"未能加载文件或程序集“log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905”或它的某一个依赖项。系统找不到指定的文件。":"log4net, Version=1.2.9.0, Culture=neutral, PublicKeyToken=b32731d11ce58905"}
问题可能就出在log4net身上
[解决方法]
果然,在app.config文件中加入下面的section:

<log4net>
<appender name="NHibernateFileLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/nhibernate.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/general.txt" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
<file value="Logs/data.txt" />
<appendToFile value="true" />
<maximumFileSize value="100KB" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n" />
</layout>
</appender>

<!-- levels: DEBUG, INFO, WARN, ERROR, FATAL -->

<root>
<level value="DEBUG"/>
<appender-ref ref="GeneralLog" />
</root>

<logger name="NHibernate" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="NHibernateFileLog"/>
</logger>
<logger name="Pushable.Data" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="DataLog"/>
</logger>
</log4net>

同时修改configSections节为:

<configSections>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>

也就是加上log4net,不然会报错。运行的时候new configuration()通过了

[新问题]
当执行到:

ISessionFactory factory = config.BuildSessionFactory();
时出现错误:

{"未能加载文件或程序集“Iesi.Collections, Version=1.0.0.1, Culture=neutral, PublicKeyToken=154fdcb44c4484fc”或它的某一个依赖项。系统找不到指定的文件。":"Iesi.Collections, Version=1.0.0.1, Culture=neutral, PublicKeyToken=154fdcb44c4484fc"}

[解决方法]

从nhibernate-1.0.4.0/bin目录中拷贝Iesi.Collections.dll到其他目录(或者不拷贝),然后引用到所在项目中

问题3:Nhibernate1.0或以上版本运行时提示加载程序集有误应修改配置项

把<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
改为:<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

问题4:提示Proxy代理有误应加入Castle.DynamicProxy.dll

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐