2010-07-15 6 views
3

J'essaie de mettre à jour mon site Web ASP.NET MVC 1 à la version 2. Tout en faisant cela, je dois également mettre à jour tous mes autres assemblages. Cela inclut également la DLL ActiveRecord de Castle. Voici l'erreur que je reçois:Quel est le problème avec mon Castle ActiveRecord web.config

Erreur de configuration Description: Une erreur produite lors du traitement d'un fichier de configuration nécessaire pour cette demande. S'il vous plaît examiner les détails d'erreur spécifiques ci-dessous et modifiez votre fichier de configuration de manière appropriée.

Parser Message d'erreur: Une erreur est survenue la création du gestionnaire de section configuration pour activerecord: exception a été levée par la cible d'un appel.

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

Je ne vois rien de mal ici, j'ajouté "mise en veille prolongée." au début des années clés en suivant:

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

Il n'a pas eu ça avant donc je pensais que peut-être été la raison pour laquelle il a agi en place.

Répondre

2

NHibernate a besoin de la configuration de ProxyFactoryFactory (exactement comme le dit le message). Les derniers navires de libération ActiveRecord avec l'usine d'usine de proxy château afin que vous puissiez le configurer comme ceci:

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

Assurez-vous que vous avez une référence à NHibernate.ByteCode.Castle.dll, Castle.DynamicProxy2.dll, Château. Core.dll dans votre application

Vous n'avez pas besoin de définir la propriété release_mode, elle est facultative.

Le préfixe hibernate. pour les propriétés de configuration a été supprimé dans NHibernate 2.0. La page castleproject.org que vous citez est pour Castle ActiveRecord RC1 (très ancien), qui utilisait une ancienne version de NHibernate (1.0 ou quelque chose comme ça). Les derniers documents pour la référence de configuration XML pour ActiveRecord sont here.

+0

Merci beaucoup. – rball

+0

Juste pour être sûr: est-ce vraiment 'type =" NHibernate ... "' ou c'est juste une faute de frappe pour 'value =" NHibernate ... "'? –

+0

@ anderson.pimentel merci, corrigé. Notez également que ceci est pour NHibernate 2.x –

2

Il se peut qu'une clé vous manque pour le mode de libération.

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

Avez-vous une section Enregistrement actif?

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

Je ne devine, essayer et laisser Nous savons.

+0

pour une raison quelconque, la section xml n'a pas montré dans mon message. J'ai mis à jour pour montrer ce que j'ai. Merci pour la réponse. – rball

+0

sur ma machine, c'est tout ce qui est nécessaire. Avez-vous toute la bibliothèque de liens dynamiques et les fichiers XML requis? – Zac

0

Voici ce que j'ai maintenant:

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

Je mis à jour au château dernières assemblées Active Record 2.1.2 et cette erreur ... est allé loin maintenant, j'ai:

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> 

bonne grâce.