2010-03-11 12 views
5

मैंने दो स्थितियों में एप्लिकेशन को चलाने की कोशिश की है: SQL सर्वर कॉम्पैक्ट संस्करण (3.5) स्थापित और बिना किसी के। एसक्यूएल सर्वर कॉम्पैक्ट संस्करण स्थापित नहीं है, मैं निम्नलिखित त्रुटि मिलती है:संरक्षित मेमोरी को पढ़ने या लिखने का प्रयास किया गया- एसक्यूएल कॉम्पैक्ट और .NE

Exception :Attempted to read or write protected memory. This is often an indication 
that other memory is corrupt. 

Inner Exception : 
======================== 

Stack Trace : 
======================== 
    at System.Data.SqlServerCe.NativeMethods.CloseStore(IntPtr pSeStore) 
    at System.Data.SqlServerCe.SqlCeConnection.ReleaseNativeInterfaces() 
    at System.Data.SqlServerCe.SqlCeConnection.Dispose(Boolean disposing) 
    at System.Data.SqlServerCe.SqlCeConnection.Finalize() 
Source : 
======================== 
System.Data.SqlServerCe 
---------------------------------------------------------- 

मैं this method का उपयोग कर बिना क्रिया के अपवाद हैंडलिंग रहा हूँ।

मुझे यह त्रुटि एक कंसोल एप्लिकेशन से मिल रही है जिसे मैं विंडोज फॉर्म से शुरू कर रहा हूं। दोनों एप्लिकेशन में मैंने अनचाहे अपवाद कोडिंग डाली है और इसे निष्पादित किया जा रहा है और टेक्स्ट फ़ाइल में वापस लौटा रहा है, और माइक्रोसॉफ्ट की रिपोर्ट त्रुटि 'संवाद उत्पन्न हो रहा है; मैं इसे कैसे होने से रोकूं? मैं इस समस्या का कारण बनने का निवारण कैसे करूं?

उत्तर

-1

मैंने उस त्रुटि को हल किया !!! यह वास्तव में एसक्यूएल कॉम्पैक्ट त्रुटि या कोड से अपवाद नहीं था। यह जीएसी था जो फेंक रहा था क्योंकि मैं कुछ उद्देश्य के लिए एक और एप्लीकेशन खोल रहा था और वह ऐप डाटाबेस तक पहुंच रहा था। उस समय जब वह ऐप डीबी बंद कर रहा था, यह स्पष्ट रूप से अभिभावक ऐप से मारा गया था इसलिए त्रुटि SQL COMPACT के लिए आ रही थी। इसलिए, मैं अपने कोड में कुछ बदलाव करता हूं और यह अभी काम कर रहा है !!! आपके सभी सुझावों के लिए धन्यवाद।

आप कनेक्शन से पहले इसे फिर से खोलना बंद नहीं करते हैं, तो आप "System.Data.SqlServerCe" arround इस त्रुटि मिलती है:

+0

इसे काम करने के लिए आपने क्या कोड परिवर्तन किए हैं? मुझे लगता है कि मुझे विजुअल स्टूडियो 2010 में एक ही समस्या है "डीबी ओपन" है। – JasonD

+0

क्या मैं डाउनवोट – Jankhana

+6

-1 के कारण को जान सकता हूं क्योंकि यह कोई जवाब नहीं है। मुझे खुशी है कि आपने अपनी समस्या हल की है, लेकिन कुल मिलाकर यह जवाब लोगों को कुछ भी नहीं बताता है। –

1

देशी एसक्यूएल कॉम्पैक्ट कोड क्रैश हो रहा है। यह बहुत असामान्य है। और बहुत आपके कोड के कारण होने की संभावना नहीं है। ऐसी समस्या नहीं है जिसे आप कभी डीबग कर सकते हैं, आपके पास देखने के लिए मशीन कोड के अलावा कुछ भी नहीं है। यदि आप किसी अन्य प्रक्रिया में अप्रबंधित कोड चलाते हैं तो अस्थिरता के लिए इसे जिम्मेदार मानें। पीसी को लिखना और डिस्क प्लैटर्स के बीच शूटिंग करना त्वरित फिक्स है।

+0

यू सिर्फ वाट पर बाहर संक्षिप्त कर सकते हैं यू मतलब "पीसी बंद लेखन और डिस्क थाली के बीच यह शूटिंग त्वरित सुधार है।" – Jankhana

+1

मतलब: "मशीन से छुटकारा पाएं, दूसरा प्राप्त करें"। –

2

जब मैं इस मुद्दे था, समस्या डेटाबेस कनेक्शन था।

बस इस पंक्ति जोड़कर मेरी समस्या हल हो जाती:

SqlCeConnection conn = new SqlCeConnection(_connectionString); 
conn.Close(); //adding this. 


if(conn == ConnectionState.Open) { 
//-- Your code here. 
} 
0

मेरा अपना त्रुटि तथ्य यह है कि मैं धागे उपयोग कर रहा था की वजह से किया जा रहा था। चेक this link

The intermittent quality of the exception seems to indicate a threading problem. The sql ce database in this case is being concurrently accessed by multiple threads: one is a write-only thread used by a SqlCeResultSet object and the other(s) are read-only operations generated by LINQ queries.

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

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