2012-01-11 16 views
8

aquí está mi archivo nlog.config. He activado el throwsException.nlog usando connectionStringName para el registro de la base de datos

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" throwExceptions="true"> 
     <targets> 
     <target type="Database" name="databaseLog" 
     dbProvider="sqlserver" connectionstring="server=.\SQLExpress;database=Movie;integrated security=true"> 
      <commandText> 
       INSERT INTO [Log] ([Description] , [Level]) VALUES (@Description, @Level) 
      </commandText> 
      <parameter name="@Description" layout="${message}"/> 
      <parameter name="@Level" layout="${level}"/> 
     </target> 

     </targets> 

     <rules> 
     <logger name="*" minLevel="Trace" appendTo="databaseLog"/> 
     </rules> 
</nlog> 

Esto funcionará y será insertar registros en la base de datos. Sin embargo, me gustaría utilizar connectionstringName y no volver a escribir la connectionstring. Cuando cambio el connectionstring a connectionStringName como esto ....

connectionstring="server=.\SQLExpress;database=Movie;integrated security=true" 

a

connectionStringName="ApplicationConnectionString" 

Me aparece un error Esperando cadena no vacía de 'providerInvariantName 'parámetro

Respuesta

11

A dd System.Data.SqlClient atribuir ProviderName en su cadena de conexión en web.config/app.config:

<add name="ApplicationConnectionString" 
providerName="System.Data.SqlClient" 
connectionString="server=.\SQLExpress;database=Movie;integrated security=true;"/> 
+0

Gracias Nick! funciona genial – eiu165

+2

¿Podrían aclarar a dónde va esto nLog config o web.config? Gracias. – AlexVPerl

Cuestiones relacionadas