Ho uno strano errore che causa l'arresto anomalo dell'applicazione. Succede solo quando è compilato e installato tramite click-once e non quando esegue il debug in Visual Studio.Errore SQL Server CE - solo su codice compilato
Visualizzazione del registro eventi mi dà questo:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Windows Error Reporting" />
<EventID Qualifiers="0">1001</EventID>
<Level>4</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-04-27T14:51:30.000000000Z" />
<EventRecordID>6471</EventRecordID>
<Channel>Application</Channel>
<Computer>me.local</Computer>
<Security />
</System>
- <EventData>
<Data />
<Data>0</Data>
<Data>CLR20r3</Data>
<Data>Not available</Data>
<Data>0</Data>
<Data>calibration certificate builder</Data>
<Data>1.0.0.0</Data>
<Data>553e4aaa</Data>
<Data>System.Data.SqlServerCe</Data>
<Data>3.5.8080.0</Data>
<Data>4b743b2d</Data>
<Data>e3</Data>
<Data>0</Data>
<Data>System.ArgumentNullException</Data>
<Data />
<Data>C:\Users\me\AppData\Local\Temp\WER80E0.tmp.WERInternalMetadata.xml</Data>
<Data>C:\Users\me\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_pick_cert_e053eebdc3d787d726058a9b0d3405c6f279444_3b258dcb</Data>
<Data />
<Data>0</Data>
<Data>e12fbed6-ecec-11e4-b276-24fd52358985</Data>
<Data>65</Data>
</EventData>
</Event>
sono incerto come gestire questo. Ho guardato attraverso il mio codice e non sembra essere un problema lì. Sembra essere all'interno del codice SQL Server CE da qualche parte ma non sono stato in grado di trovarlo.
ho anche spinto la stringa event.ExceptionObject
un file di testo e ha ottenuto questo:
System.ArgumentNullException: valore non può essere null. a System.Threading.Monitor.Enter (Object obj) a System.Data.SqlServerCe.SqlCeCommand.Dispose (booleano smaltimento) a System.Data.SqlServerCe.SqlCeCommand.Finalize()
Chiunque può aiutare me lo interpreto?
Ho rimosso l'utilizzo dei servizi SQL CE da altri thread. Ho anche rimosso lo smaltimento della connessione SQL CE e anche i blocchi finally, ma i log degli errori rimangono gli stessi.
Lo smaltimento della connessione causa un problema?
Probabile non direttamente correlato, ma: si sta eliminando il comando SQL (e probabilmente altre risorse come SQLCeConnection) tramite il finalizzatore, invece di averli in un blocco 'using' e di eliminarli quando hai finito con loro. Vorrei anche controllare la tua configurazione per i percorsi, ecc. Che potrebbero essere diversi per la tua app installata e, infine, sospetto che tu stia usando il 'try {....} catch {/ * non fare nulla, nemmeno registrare l'errore * /} 'schema. – Alex
Sì, lo sto facendo e uso il pattern try/catch. Guarderò anche alla connessione della connessione. Grazie. – redned
Non è possibile condividere oggetti di comando e connessione sui thread – ErikEJ