2011-11-24 31 views
8

Estoy intentando utilizar el ensamblado Common.Logging para reemplazar el registro de nHibernate Log4net predeterminado.El inicializador de tipo para 'NHibernate.LoggerProvider' lanzó una excepción

que añade una referencia en mi proyecto a:
Common.Logging.dll v2.0
NHibernate.Logging.CommonLogging.dll v1.2.0.4000

y luego añade lo siguiente a mi Web.config :

<add key="nhibernate-logger" value="NHibernate.Logging.CommonLogging.CommonLoggingLoggerFactory, Hibernate.Logging.CommonLogging"/> 

Mi objetivo ulitmate es reemplazar el registro Log4net con el Enterprise Library 5.0, pero sólo estoy tomando un paso a la vez en el momento.

Cuando ejecuto mi aplicación ahora obtener la siguiente excepción:

The type initializer for 'NHibernate.Cfg.Configuration' threw an exception. => 
The type initializer for 'NHibernate.LoggerProvider' threw an exception. => 
The type initializer for 'NHibernate.LoggerProvider' threw an exception. => 
Unable to instantiate: => 
Value cannot be null.\r\nParameter name: type 
at NHibernate.LoggerProvider.LoggerFor(Type type) 
at NHibernate.Cfg.Configuration..cctor() 

¿Hay algo que me falta utilizar el Common.Logging con NHibernate? He tratado de seguir las instrucciones que he encontrado en la web pero no está trabajando y no puedo encontrar una solución :(

estoy usando NHibernate v3.2.0.4000.

PS. este es mi primer post en este sitio lo siento si el formato no es correcto, voy a aceptar la crítica constructiva glady: o)

+1

Deseo que se haya respondido esta pregunta. Este es el mismo problema exacto que estoy teniendo – Mario

+0

Se responde, simplemente no lo marcó. Una de las cuentas desechables, acaba de hacer para hacer una pregunta. Básicamente, la cadena de configuración se copia de un tutorial y tiene un error tipográfico. '" ..., Hibernate.Logging ". Debería ser 'NHibernate.Logging' –

Respuesta

8

interruptor Hibernate.Logging.CommonLogging con NHibernate.Logging.CommonLogging

+0

Creo que seguimos la misma web práctica, y terminamos copiando su error tipográfico en nuestra propia configuración. –

+2

Esta debería ser la respuesta aceptada. –

2

intente instalar el paquete NHibernate.Logging de NuGet (o haga referencia a la biblioteca, si no utiliza NuGet). Trabajó para mi.

Saludos.

2

Si ejecuta su solución en Windows Server 2008 y usa NHibernate 3.0+, asegúrese de tener .Net 3.5 instalado y de que aspnet_regiis se haya ejecutado para .NET Framework (o frameworkx64) 2.0. Además, si se trata de un sitio web, asegúrese de que se esté ejecutando en el grupo de aplicaciones .net clásico y no en el grupo de aplicaciones predeterminado.

NHibernate 3.0+ necesita .net 3.0 y superior.

0

versión corta

Comprobar si el nombre de la Asamblea de su proyecto coincide con el valor en la clave nhibernate-logger en su web.config

Versión larga

Ésta es una vieja pregunta, pero me encontré con cuando tuve el mismo error En mi caso, el problema fue causado porque cambié el nombre del proyecto donde se encontraba el NLogFactory y cambié el web.config para reflejar eso, pero olvidé cambiar el nombre del ensamblado del proyecto.

Es decir, que cambió el nombre de mi proyecto desde CDP.Core a ARR.Code, entró en mi web.config cambiar

<add key="nhibernate-logger" value="CDP.Core.DBContext.Framework.NLogFactory, CDP.Core" /> 

Para:

<add key="nhibernate-logger" value="ARR.Core.DBContext.Framework.NLogFactory, ARR.Core" /> 

pero se olvidó de entrar en las propiedades del proyecto, "Aplicación" pestaña y cambie "Nombre del ensamblado" al nuevo nombre.

Cuestiones relacionadas