我正在尝试将我的ASP.NET MVC 1网站升级到版本2.在执行此操作时,我还必须更新所有其他程序集。这包括Castle的ActiveRecord dll。这是我得到的错误:
配置错误说明:An 处理过程中出错 需要的配置文件 服务这个请求。请查阅 下面的具体错误详情和 修改配置文件 适当。
分析程序错误消息:错误 发生了创建配置 activerecord的section处理程序: 例外已被抛出 调用的目标。
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" />
...
</configSections>
<activerecord isWeb="true" isDebug="false">
<config>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver" />
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2005Dialect" />
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
<add
key="hibernate.connection.connection_string"
value="Data Source=(local)\SQLEXPRESS;Initial Catalog=db;Integrated Security=SSPI;" />
</config>
</activerecord>
我没有看到任何错误,我添加了“休眠”。通过以下方式到键的开头:
http://www.castleproject.org/activerecord/documentation/v1rc1/manual/xmlconfigref.html
之前没有那个,所以我认为这可能就是为什么它正在起作用。
答案 0 :(得分:2)
您可能缺少发布模式的密钥。
&lt; add key =“hibernate.connection.release_mode”value =“on_close”/&gt;?
您有活动记录部分吗?
&lt; section name =“activeRecord”type =“Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler,Castle.ActiveRecord”requirePermission =“false”/&gt;
我只是猜测,尝试一下,让我们知道。
答案 1 :(得分:2)
NHibernate需要ProxyFactoryFactory的配置(就像消息所说的那样)。最新的ActiveRecord版本随Castle代理工厂一起提供,因此您可以将其设置为:
<add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
确保您的应用程序中有对NHibernate.ByteCode.Castle.dll,Castle.DynamicProxy2.dll,Castle.Core.dll的引用
您无需设置release_mode
属性,它是可选的。
在NHibernate 2.0中删除了配置属性的hibernate.
前缀。您引用的castleproject.org页面是针对Castle ActiveRecord RC1(非常旧),它使用了古老版本的NHibernate(1.0或类似的东西)。 ActiveRecord的XML配置参考的最新文档是here。
答案 2 :(得分:0)
这就是我现在所拥有的:
<add
key="connection.driver_class"
value="NHibernate.Driver.SqlClientDriver" />
<add
key="dialect"
value="NHibernate.Dialect.MsSql2000Dialect" />
<add
key="connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
<add
key="connection.connection_string"
我更新到最新的Castle Active Record程序集2.1.2并且该错误消失了......现在我已经:
The ProxyFactoryFactory was not configured.
Initialize 'proxyfactory.factory_class' property of the session-factory configuration section with one of the available NHibernate.ByteCode providers.
Example:
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
Example:
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
好的亲切......