Partager via


Dépannage des exceptions : System.InvalidOperationException

Une exception InvalidOperationException est levée lorsque l'appel d'une méthode échoue pour des raisons autres que des arguments non valides. Cette exception peut être levée par des méthodes .NET Framework lorsque la méthode Win32 sous-jacente ne peut pas être appelée.

Conseils associés

  • Si vous utilisez l'objet Graphics après la méthode GetHdc, appelez la méthode ReleaseHdc.
    Cela permet de libérer le handle de contexte obtenu par un appel précédent à la méthode GetHdc de l'objet Graphics.

  • Les TableAdapters requièrent des commandes UPDATE, INSERT et DELETE valides pour exécuter une opération d'enregistrement avec succès.
    Les TableAdapters génèrent des instructions INSERT, UPDATE et DELETE en fonction de l'instruction SELECT d'origine entrée dans l'Assistant. Parfois, l'instruction SELECT ne fournit pas suffisamment d'informations pour que l'adaptateur puisse générer les commandes nécessaires à la création des commandes INSERT, UPDATE et DELETE requises pour réussir un enregistrement. Cette situation se rencontre souvent lorsque la table de base de données ne comporte pas de colonne de clé primaire, ou que la commande SELECT utilise JOINS. Pour plus d'informations, consultez Comment : modifier des TableAdapters.

  • Passez un nom de point de terminaison valide au constructeur client de service.
    Lorsqu'un client de Windows Communication Foundation (WCF) possède un seul point de terminaison, il n'y a aucune ambiguïté et vous n'avez pas à répertorier le point de terminaison comme un argument. Toutefois, lorsque le même type de contrat possède plusieurs points de terminaison, vous devez spécifier le point utilisé par le client. Par exemple, cette exception est levée lorsqu'un client est défini, sans argument, en tant qu'instance de ServiceReference.ServiceSoapClient(). Vous pouvez résoudre le problème en spécifiant un point de terminaison particulier :

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

    De même, cette exception est levée si vous fournissez un nom de point de terminaison introuvable. Dans ce cas, vous devez identifier et fournir un nom de point de terminaison valide.

Notes

Lorsque vous exécutez votre code dans le débogueur Visual Studio, une exception InvalidOperationException est levée si vous accédez à un élément d'interface utilisateur à partir d'un thread différent de celui sur lequel l'élément a été créé. Le débogueur agit ainsi pour vous alerter sur une pratique de programmation dangereuse. Les éléments d'interface utilisateur ne sont pas thread-safe et doivent être accessibles uniquement sur le thread qui les a créés. Pour plus d'informations, consultez Threads (C# et Visual Basic).

Si l'appel de la méthode échoue en raison d'arguments non valides, ArgumentException ou l'une de ses classes dérivées, ArgumentNullException ou ArgumentOutOfRangeException doit plutôt être levée.

Pour le développement 64 bits avec Visual Studio et SQL Server Compact 3.5, l'option Unité centrale cible dans les Paramètres avancés du compilateur doit avoir explicitement la valeur x86. Lorsque l'option Unité centrale cible a la valeur par défaut Any CPU, le message « Impossible de charger sqlceme35.dll » risque d'apparaître. Définissez l'option Unité centrale cible dans la section Paramètres avancés du compilateur des propriétés du projet.

Voir aussi

Tâches

Comment : utiliser l'Assistant Exception

Dépannage des références de service

Référence

InvalidOperationException

GetHdc

ReleaseHdc