spreader
Goto Top

Fehlermeldung unterdrücken

Hallo zusammen,

ich habe mit Microsoft Visual Studio 2008 eine anwendung geschrieben. In dieser wird mit IO.File.WriteAllText("chat.txt") und IO.File.ReadAllText("chat.txt") aus der datei chat.txt gelesen und in die datei geschrieben. Dies funktioniert normalerweise gut, aber wenn ich das Programm zweimal öffne und es dann gleichzeitig lesen und schreiben muss, kommt diese Fehlermeldung:


Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.IO.IOException: Der Prozess kann nicht auf die Datei D:\Manuel\VisualBasic\chat\chat\bin\Release\chat.txt zugreifen, da sie von einem anderen Prozess verwendet wird.
   bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   bei System.IO.StreamWriter.CreateFile(String path, Boolean append)
   bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
   bei System.IO.File.WriteAllText(String path, String contents, Encoding encoding)
   bei WindowsApplication1.Form1.senden() in D:\Manuel\VisualBasic\chat\chat\Form1.vb:Zeile 14.
   bei WindowsApplication1.Form1.Timer2_Tick(Object sender, EventArgs e) in D:\Manuel\VisualBasic\chat\chat\Form1.vb:Zeile 41.
   bei System.Windows.Forms.Timer.OnTick(EventArgs e)
   bei System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
chat
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///D:/Manuel/VisualBasic/chat/chat/bin/Release/chat.exe.
----------------------------------------
Microsoft.VisualBasic
    Assembly-Version: 8.0.0.0.
    Win32-Version: 8.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Runtime.Remoting
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 2.0.0.0.
    Win32-Version: 2.0.50727.1433 (REDBITS.050727-1400).
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />  
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

Der Zweck des Programms wird jedoch trotzdem erfüllt.
Die Fehlermeldung ist aber etwas störend. Kann ich diese irgendwie unterdrücken?

Content-Key: 92400

Url: https://administrator.de/contentid/92400

Printed on: April 16, 2024 at 23:04 o'clock

Mitglied: 67369
67369 Jul 19, 2008 at 13:00:51 (UTC)
Goto Top
VB - Beispiel, wie man sowas verhindern kann:
http://www.old.awzhome.de/vb.php?content=stp&id=85
Member: spreader
spreader Jul 19, 2008 at 13:05:39 (UTC)
Goto Top
Danke für die schnelle Antwort, aber das ist nicht das was ich suche.
Es ist schon geplant, dass das programm zweimal offen ist.

Mein Programm funktioniert bestens ich will nur die Fehlermeldung unterdrücken face-smile
Mitglied: 67369
67369 Jul 19, 2008 at 13:10:12 (UTC)
Goto Top
Visual Studio ist eine Oberfläche, kein Programm. Zu den verwendeten Modulen gibt es sicher eine ausführliche Hilfe, und darin steht auch bestimmt, wie man I/O-Fehler abfangen kann.
Member: spreader
spreader Jul 19, 2008 at 13:35:23 (UTC)
Goto Top
Nein, leider gibt es dazu kein Hilfethema ...
Member: bastla
bastla Jul 19, 2008 at 15:49:32 (UTC)
Goto Top
Hallo spreader!

Ohne Deine Konzeption hinterfragen zu wollen, könnte es vielleicht schon genügen, jeweils vor der IO-Anweisung ein "On Error Resume Next" und danach ein "On Error Goto 0" einzubauen.

Grüße
bastla
Member: spreader
spreader Jul 20, 2008 at 19:13:40 (UTC)
Goto Top
danke bastla =)
genau das hab ich gesucht!