Share via


Problembehandlung bei Ausnahmen: System.InvalidOperationException

Eine InvalidOperationException-Ausnahme wird ausgelöst, wenn ein Methodenaufruf nicht aufgrund eines ungültigen Arguments, sondern aus einem anderen Grund fehlschlägt. Diese Ausnahme wird möglicherweise von .NET Framework-Methoden ausgelöst, wenn die zugrunde liegende Win32-Methode nicht aufgerufen werden kann.

Tipps

  • Rufen Sie die ReleaseHdc-Methode auf, wenn Sie das Grafikobjekt nach der GetHdc-Methode verwenden.
    Dadurch wird das Kontexthandle freigegeben, das bei einem vorherigen Aufruf der GetHdc-Methode des Graphics-Objekts zugewiesen wurde.

  • TableAdapters erfordern gültige UPDATE-, INSERT- und DELETE-Befehle, um einen erfolgreichen Speichervorgang auszuführen.
    Basierend auf der ursprünglichen SELECT-Anweisung, die in den Assistenten eingegeben wurde, generieren TableAdapters INSERT-, UPDATE- und DELETE-Anweisungen. In einigen Fällen enthält die SELECT-Anweisung nicht genügend Informationen für den Adapter, damit dieser die erforderlichen Befehle generieren kann, die für das Erstellen der INSERT-, UPDATE- und DELETE-Befehle benötigt werden, die wiederum für einen erfolgreichen Speichervorgang notwendig sind. Dies tritt häufig auf, wenn die Datenbanktabelle keine Primärschlüsselspalte hat oder wenn der SELECT-Befehl JOINS verwendet. Weitere Informationen finden Sie unter Gewusst wie: Bearbeiten von TableAdapters.

  • Übergeben Sie einen gültigen Endpunktnamen an den Dienstclientkonstruktor.
    Wenn ein Windows Communication Foundation (WCF)-Client nur über einen Endpunkt verfügt, besteht keine Mehrdeutigkeit, und der Endpunkt muss nicht als Argument aufgelistet werden. Wenn jedoch mehr als zwei Endpunkte für denselben Vertragstyp vorhanden sind, müssen Sie den Endpunkt angeben, der vom Client verwendet wird. Beispielsweise wird folgende Ausnahme ausgelöst, wenn Sie einen Client ohne Argument als Instanz von ServiceReference.ServiceSoapClient() festlegen. Um das Problem zu beheben, geben Sie einen bestimmten Endpunkt an:

    Dim client As New ServiceReference.ServiceSoapClient("ServiceSoap")

    Diese Ausnahme wird ebenfalls ausgelöst, wenn Sie einen Endpunktnamen angeben, der nicht gefunden wird. In diesem Fall müssen Sie einen gültigen Endpunktnamen angeben und bereitstellen.

Hinweise

Wenn Sie den Code im Visual Studio-Debugger ausführen, wird eine InvalidOperationException ausgelöst, wenn Sie in einem Thread auf ein Benutzeroberflächenelement zugreifen, dieses Element aber nicht von diesem Thread erstellt wurde. Der Debugger warnt Sie mit dieser Ausnahme vor einem gefährlichen Programmierstil. Benutzeroberflächenelemente sind nicht threadsicher, und es sollte nur in dem Thread auf sie zugegriffen werden, in dem sie erstellt wurden. Weitere Informationen finden Sie unter Threading (C# und Visual Basic).

Wenn ein Methodenaufruf durch ungültige Argumente fehlschlägt, wird stattdessen ArgumentException oder eine der davon abgeleiteten Klassen, ArgumentNullException oder ArgumentOutOfRangeException, ausgelöst.

Für die 64-Bit-Entwicklung mit Visual Studio und SQL Server Compact 3.5 muss die Option Ziel-CPU in Erweiterte Compilereinstellungen explizit auf x86 festgelegt sein. Wenn die Option Ziel-CPU auf den Standardwert Any CPU festgelegt ist, erhalten Sie möglicherweise die Fehlermeldung "sqlceme35.dll kann nicht geladen werden". Legen Sie die Option Ziel-CPU in den Projekteigenschaften unter Erweiterte Compilereinstellungen fest.

Siehe auch

Aufgaben

Gewusst wie: Verwenden des Ausnahmen-Assistenten

Problembehandlung bei Dienstverweisen

Referenz

InvalidOperationException

GetHdc

ReleaseHdc