2010-03-11 7 views
5

zu lesen oder zu schreiben Ich habe versucht, die Anwendung in zwei Situationen auszuführen: mit SQL Server Compact Edition (3.5) installiert und ohne. Wenn SQL Server Compact Edition nicht installiert ist, bekomme ich folgende Fehlermeldung:Versucht, geschützter Speicher-Sql Compact und .NEt

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

Ich bin Umgang mit Unbehandelte Ausnahmen this method verwenden.

Ich bekomme diesen Fehler von einer Konsolenanwendung, die ich von einem Windows Form starte. In beiden Anwendungen habe ich die Unhandled Exception-Codierung eingefügt und sie wird ausgeführt und in die Textdatei zurückgeliefert, und der Microsoft-Fehlerbericht wird generiert. Wie verhindere ich das? Wie behebe ich die Ursache für dieses Problem?

Antwort

-1

Ich löste diesen Fehler !!! Es war nicht wirklich SqlCompact Fehler oder Exception von code.It war GAC, die wardit Bec Ich öffnete eine andere Anwendung für einen bestimmten Zweck und diese App war der Zugriff auf die Datenbank. Als die App die DB geschlossen hat, wurde sie explizit von der übergeordneten App gelöscht, sodass der Fehler für SQL COMPACT kam. also ich, ein paar Änderungen in meinem Code und es funktioniert jetzt !!! Danke für all deine Vorschläge.

+0

Welche Codeänderungen haben Sie vorgenommen, um es zum Laufen zu bringen? Ich denke, ich habe das gleiche Problem in Visual Studio 2010 ist die "andere Anwendung", die die DB geöffnet hat. – JasonD

+0

kann ich den Grund für den Downvote – Jankhana

+6

-1 einfach, weil dies keine Antwort ist. Ich bin froh, dass du dein Problem gelöst hast, aber insgesamt sagt diese Antwort den Leuten nichts. –

1

Der native SQL Compact-Code stürzt ab. Das ist sehr ungewöhnlich. Und sehr unwahrscheinlich durch Ihren Code verursacht werden. Nicht die Art von Problem, die Sie jemals debuggen könnten, Sie haben nichts als Maschinencode zu sehen. Wenn Sie einen anderen nicht verwalteten Prozesscode ausführen, sollten Sie ihn als Ursache für die Instabilität betrachten. Schreiben Sie den PC und schießen Sie es zwischen den Disk-Platten ist die schnelle Lösung.

+0

kann u kurze out nur auf wat u bedeuten durch „die PC-Schreiben aus und zwischen den Scheibenplatten aufnehmen, ist die schnelle Lösung.“ – Jankhana

+1

Bedeutet: "die Maschine loswerden, einen anderen bekommen". –

2

Als ich dieses Problem hatte, war das Problem der Datenbankverbindung:

Wenn Sie die Verbindung wieder öffnen, bevor es nicht schließen, diese Fehlermeldung angezeigt arround „System.Data.SqlServerCe“.

einfach diese Zeile hinzufügen löste mein Problem:

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


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

Mein eigener Fehler durch die Tatsache verursacht wurde, dass ich Fäden wurde mit. Prüfen 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.

Verwandte Themen