2012-01-11 16 views
8

qui è il mio file nlog.config. Ho attivato il throwsException.nlog utilizzando connectionStringName per la registrazione del database

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

Ciò funzionerà e inserirà i record nel database. Comunque mi piacerebbe usare connectionstringName e non ridigitare il connectiontring. quando cambio la connectionstring a connectionstringname come questo ....

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

a

connectionStringName="ApplicationConnectionString" 

ottengo un errore Expecting stringa non vuota per 'providerInvariantName "parametro

risposta

11

A dd System.Data.SqlClient attribuire ProviderName nella stringa di connessione nel web.config/app.config:

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

Grazie Nick! Funziona alla grande – eiu165

+2

Potresti per favore chiarire dove si trova nLog config o web.config? Grazie. – AlexVPerl

Problemi correlati