我的Castle ActiveRecord web.config有什么问题

时间:2010-07-15 04:55:42

标签: castle-activerecord

我正在尝试将我的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

之前没有那个,所以我认为这可能就是为什么它正在起作用。

3 个答案:

答案 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>
好的亲切......