2009-06-30 11 views
5

के लिए दूसरा मैं अपने प्रोजेक्ट में नलॉग का उपयोग कर रहा हूं। मेरा web.config इस तरह दिखता है:web.config फ़ाइल में कनेक्शन स्ट्रिंग का दो बार उपयोग करना; Nlog कॉन्फ़िगरेशन

<connectionStrings> 
    <add name="SQL_ConnStr" connectionString="Initial Catalog=ConfigDB;Provider=SQLOLEDB; Data Source=mysqlserver; User ID=sa; Password=sa; Persist Security Info=True;"/> 
</connectionStrings> 
... 
<nlog> 
<targets> 
    <target name="database" type="Database" dbProvider="sqlserver" **connectstring="Initial Catalog=ConfigDB;Provider=SQLOLEDB; Data Source=mysqlserver; User ID=sa; Password=sa"** commandText="INSERT INTO ..."> 
</target> 
</targets> 
<rules> 
<logger name="*" minlevel="Debug" writeTo="database"/> 
</rules> 
</nlog> 

दो समान कनेक्शन स्ट्रिंग्स! मेरा सवाल यह है कि केवल एक कनेक्शन स्ट्रिंग को कैसे रखा जाए?

उत्तर

16

पहले कनेक्शन स्ट्रिंग में जोड़ें प्रदाता नाम विशेषता जोड़ें। फिर कनेक्शनस्ट्रिंग के बजाय कनेक्शनस्ट्रिंगनाम का उपयोग करें और सेटिंग से कनेक्शन स्ट्रिंग का संदर्भ लें।

<connectionStrings> 
    <add name="SQL_ConnStr" 
     providerName="System.Data.SqlClient" 
     connectionString="Initial Catalog=ConfigDB;Provider=SQLOLEDB; Data Source=mysqlserver; User ID=sa; Password=sa; Persist Security Info=True;"/> 
</connectionStrings> 
... 
<nlog> 
    <targets> 
    <target name="database" 
      type="Database" 
      dbProvider="sqlserver" 
      connectionStringName="SQL_ConnStr" 
      commandText="INSERT INTO ..."> 
    </target> 
    </targets> 
    <rules> 
    <logger name="*" 
      minlevel="Debug" 
      writeTo="database"/> 
    </rules> 
</nlog> 
+5

मैं बस कुछ महत्वपूर्ण जानकारी जोड़ना चाहता हूं। बेशक उसे कनेक्शनस्ट्रिंगनाम का उपयोग करना चाहिए, लेकिन उसे कनेक्शन स्ट्रिंग में प्रदातानाम विशेषता जोड़नी चाहिए (उदाहरण के लिए प्रदाता नाम = "सिस्टम। डेटा एसक्ल क्लाइंट" एमएस एसक्यूएल सर्वर के लिए)। इसके बिना एनएलओजी त्रुटि फेंकता है: "प्रदाताInvariantName 'पैरामीटर के लिए गैर-रिक्त स्ट्रिंग की अपेक्षा करना"। –

+0

लेकिन मैं कनेक्शनस्ट्रिंग अनुभाग कहां रखूं। env.ConfigureNLog ("nlog.config"); मेरे लिए एक त्रुटि फेंकता है कि यह धारा – flexxxit

+0

@flexxxit में कनेक्शन स्ट्रिंग नाम को फ़िरेंड नहीं कर सकता - यह एक अलग प्रश्न है। Http://stackoverflow.com/questions/26882704/where-to-place-connection-string-in-web-config देखें –

6

यह लक्ष्य तत्व के कनेक्शन कनेक्शनस्ट्रिंग नाम के साथ संभव होना चाहिए।

पूर्व के लिए:

<targets> 
    <target name="database" type="Database" connectionStringName="SQL_ConnStr" commandText="INSERT INTO ..."> 
</target> 

यह सीधे ConnectionStrings अनुभाग से कनेक्शन स्ट्रिंग का उपयोग करेंगे।

संबंधित मुद्दे