Risoluzione dei problemi relativi alle eccezioni: System.InvalidOperationException

Un'eccezione InvalidOperationException viene generata quando si verifica un errore di chiamata a un metodo per una causa diversa dalla presenza di un argomento non valido. Questa eccezione può essere generata da metodi .NET Framework quando non è possibile richiamare il metodo Win32 sottostante.

Suggerimenti associati

  • Se si sta utilizzando l'oggetto Graphics dopo il metodo GetHdc, chiamare il metodo ReleaseHdc.
    In questo modo verrà rilasciato l'handle del contesto ottenuto da una chiamata precedente al metodo GetHdc dell'oggetto Graphics.

  • La classe TableAdapter richiede comandi UPDATE, INSERT e DELETE validi per eseguire correttamente un'operazione di salvataggio.
    La classe TableAdapter genera istruzioni INSERT, UPDATE e DELETE in base all'istruzione SELECT originale immessa nella procedura guidata. In alcune situazioni l'istruzione SELECT non fornisce informazioni sufficienti per la generazione dei comandi richiesti per creare i comandi INSERT, UPDATE e DELETE necessari per un'operazione di salvataggio. Questo problema spesso si verifica quando nella tabella di database non è presente una colonna di chiave primaria oppure quando il comando SELECT utilizza JOINS. Per ulteriori informazioni, vedere Procedura: modificare oggetti TableAdapter.

  • Passare un nome dell'endpoint valido al costruttore del client dei servizi.
    Quando un client di Windows Communication Foundation (WCF) ha solo un endpoint, non si crea alcuna ambiguità e non è necessario elencare l'endpoint come argomento. Quando tuttavia sono presenti due o più endpoint per lo stesso tipo di contratto, è necessario specificare l'endpoint utilizzato dal client. Ad esempio, la definizione di un client come istanza di ServiceReference.ServiceSoapClient() senza un argomento genera questa eccezione. È possibile risolvere il problema specificando un determinato endpoint:

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

    Analogamente, questa eccezione viene generata se si fornisce un nome dell'endpoint che non è possibile trovare. In questo caso, è necessario identificare e fornire un nome dell'endpoint valido.

Note

Quando si esegue il codice nel debugger di Visual Studio, se si accede a un elemento dell'interfaccia utente da un thread diverso da quello nel quale è stato creato viene generata un'eccezione InvalidOperationException, al fine di segnalare all'utente una pratica di programmazione pericolosa. Gli elementi dell'interfaccia utente non sono thread-safe ed è quindi consigliabile accedervi solo dal thread dal quale sono stati creati. Per ulteriori informazioni, vedere Threading (C# e Visual Basic).

Se l'errore nella chiamata al metodo è causato da argomenti non validi, viene invece generata un'eccezione ArgumentException o una delle classi derivate, ArgumentNullException o ArgumentOutOfRangeException.

Per lo sviluppo a 64 bit con Visual Studio e SQL Server Compact 3.5, l'opzione CPU di destinazione in Impostazioni del compilatore avanzate deve essere impostata in modo esplicito su x86. Quando CPU di destinazione è impostata sul valore predefinito Any CPU, potrebbe essere visualizzato un messaggio "Impossibile caricare sqlceme35.dll". Impostare l'opzione CPU di destinazione in Impostazioni del compilatore avanzate nelle proprietà del progetto.

Vedere anche

Attività

Procedura: utilizzare Informazioni sulle eccezioni

Risoluzione dei problemi relativi ai riferimenti al servizio

Riferimenti

InvalidOperationException

GetHdc

ReleaseHdc