3 Stimmen

Was ist das Problem mit meiner Castle ActiveRecord web.config

Ich versuche, meine ASP.NET MVC 1-Website auf Version 2 zu aktualisieren. Während ich dies tue, muss ich auch alle meine anderen Assemblys aktualisieren. Dazu gehört auch die ActiveRecord dll von Castle. Hier ist der Fehler, den ich bekomme:

Konfigurationsfehler Beschreibung: Ein Fehler ist bei der Verarbeitung einer einer Konfigurationsdatei, die zur Bearbeitung diese Anfrage zu bedienen. Bitte überprüfen Sie die spezifischen Fehlerdetails unten und ändern Sie Ihre Konfigurationsdatei entsprechend.

Parser-Fehlermeldung: Ein Fehler bei der Erstellung der Konfiguration Abschnitt-Handler für activerecord: Eine Ausnahme wurde von dem Ziel eines Aufrufs ausgelöst.

<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>

Ich sehe hier keinen Fehler, ich habe "hibernate." an den Anfang des Schlüssels angehängt:

http://www.castleproject.org/activerecord/documentation/v1rc1/manual/xmlconfigref.html

Das war vorher nicht der Fall, also dachte ich, das könnte der Grund für die Probleme sein.

2voto

Zac Punkte 107

Möglicherweise fehlt Ihnen eine Taste für den Freigabemodus.

<add key="hibernate.connection.release_mode" value="on_close"/>?

Haben Sie einen Abschnitt "Aktive Aufzeichnungen"?

<section name="activeRecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" requirePermission="false"/>

Ich kann nur raten, probieren Sie es aus und lassen Sie es uns wissen.

2voto

Mauricio Scheffer Punkte 97391

NHibernate benötigt die Konfiguration für die ProxyFactoryFactory (genau wie in der Meldung angegeben). Die neueste ActiveRecord-Version wird mit der Castle-Proxy-Factory ausgeliefert, so dass Sie sie wie folgt einrichten können:

<add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>

Stellen Sie sicher, dass Sie einen Verweis auf NHibernate.ByteCode.Castle.dll, Castle.DynamicProxy2.dll, Castle.Core.dll in Ihrer Anwendung haben.

Sie müssen nicht die release_mode Eigenschaft ist sie optional.

El hibernate. Präfix für Konfigurationseigenschaften wurde in NHibernate 2.0 gestrichen. Die von Ihnen zitierte Seite castleproject.org ist für Castle ActiveRecord RC1 ( sehr alt), die eine alte Version von NHibernate (1.0 oder so ähnlich) verwendet. Die neueste Dokumentation zur XML-Konfigurationsreferenz für ActiveRecord lautet aquí .

0voto

rball Punkte 6845

Hier ist, was ich jetzt habe:

<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"

Ich habe auf die neuesten Castle Active Record Assemblies 2.1.2 aktualisiert und der Fehler ist verschwunden:

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>

Du meine Güte ...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X