2012-01-11 11 views
8

Oto mój plik nlog.config. Włączyłem wyjątek throwsException.nlog przy użyciu metody connectionStringName do rejestrowania bazy danych

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

to będzie działać i wstawi rekordy do bazy. Jednak chciałbym użyć connectionstringName, a nie ponownie wpisać connectionstring. Kiedy zmienić ConnectionString do connectionstringname tak ....

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

do

connectionStringName="ApplicationConnectionString" 

pojawia się błąd Expecting niepusty ciąg dla „providerInvariantName "parametr

Odpowiedz

11

A dd System.Data.SqlClient przypisywać ProviderName w ciągu połączenia w web.config/app.config:

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

Dzięki Nick! działa świetnie – eiu165

+2

Czy mógłbyś wyjaśnić, gdzie to się dzieje w konfiguracji nLog lub web.config? Dzięki. – AlexVPerl

Powiązane problemy