2012-01-31 4 views
8
का उपयोग करते समय

मैं System.Transactions लॉगिंग सक्षम की है:System.Transactions स्रोत चेतावनी Linq-2-Sql

<system.diagnostics> 
    <sources> 
     <source name="System.Transactions" switchValue="Warning"> 
      -- my listeners here 
     </source> 
    </sources> 
</system.diagnostics> 

और की तरह अजीब लॉग चेतावनी की बहुत देखें:

  • Transaction.Rollback कहा जाता है
  • Enlistment कॉलबैक नकारात्मक
  • TransactionScope अधूरा

क्या कोई इस पर कुछ प्रकाश डाल सकता है? मेरा सिस्टम अपेक्षित काम करता है और कोई एडीओ.NET स्तर अपवाद नहीं उठाया जाता है। डीएएल कोड स्पष्ट लेनदेन प्रबंधन या किसी भी हैक के बिना ठेठ एल 2 एस कोड है।

+2

आप एसक्यूएल प्रोफाइलर का उपयोग यह देखने के लिए कर सकते हैं कि सर्वर पर एसक्यूएल क्या भेजा जाता है ताकि आपको क्या हो रहा है इसके बारे में अधिक जानकारी मिलेगी। अधिक जानकारी के बिना हमें जवाब देने के लिए बहुत मुश्किल है। –

+0

मैंने प्रोफाइलर आउटपुट की निगरानी की और कोई आपराधिक नहीं देखा। मुझे लगता है कि जेनरेट किए गए एसक्यूएल स्टेटमेंट्स के पास इस मुद्दे से कोई लेना देना नहीं है क्योंकि एसक्यूएल सर्वर ने कुछ चेतावनियां भी की हैं, लेकिन वे प्रबंधित कोड पर वापस प्रचार नहीं कर सकते हैं, क्या वे? – UserControl

+0

यह निर्भर करता है (हमेशा की तरह) ये चेतावनी डेटाबेस द्वारा या .NET कोड/L2S द्वारा ट्रिगर की जाती है? यदि वे डेटाबेस के कारण होते हैं तो आपको वहां किए गए बैचों/प्रक्रियाओं की जांच करनी चाहिए। (मुझे लगता है कि उन्हें क्लाइंट को प्रचारित किया जाना है) –

उत्तर

1

स्विच का उपयोग करना चेतावनी का उपयोग केवल त्रुटियों से अधिक पिकअप होगा। Msdn से:

एक शर्त मौजूद है जो बाद में एक त्रुटि या महत्वपूर्ण विफलता (उदाहरण के लिए, आवंटन विफल या सीमा तक पहुंचने के परिणामस्वरूप) हो सकती है। उपयोगकर्ता कोड से त्रुटियों की सामान्य प्रसंस्करण (उदाहरण के लिए, लेनदेन निरस्त, टाइमआउट, प्रमाणीकरण विफल) चेतावनी भी उत्पन्न कर सकता है।

शायद यही वह है जो आप चाहते हैं। यदि हां, तो शांत। अन्यथा, आप इसे त्रुटि में बदलना चाह सकते हैं।

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