Dépannage des modèles de formulaires qui utilisent le modèle objet InfoPath 2003 lors de la conception
Les sections suivantes décrivent les scénarios de dépannage usuels que vous pouvez rencontrer lors de la conception et du débogage des modèles de formulaires avec code managé qui utilisent le modèle objet compatible InfoPath 2003 fourni par l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust.
Impossible d'afficher l'aperçu ou de déboguer les modèles de formulaires qui utilisent des appels à des méthodes et des propriétés du niveau de sécurité 3 du modèle objet
Si vous essayez de déboguer ou d'afficher un projet avec code managé qui contient du code faisant appel à des membres du modèle objet qui nécessitent une autorisation totale, InfoPath affiche le message d'erreur « Une exception de sécurité non gérée s’est produite dans le code du formulaire » et le formulaire ne s'ouvre pas. Pour autoriser le débogage ou l'aperçu de la logique métier dans le modèle de formulaire, vous devez définir le niveau de sécurité Autorisation totale et signer numériquement le modèle de formulaire. Pour plus d'informations sur cette procédure, voir Procédure d'affichage d'un aperçu et de débogage des modèles de formulaires avec code managé qui nécessitent une autorisation totale.
Impossible de mettre à jour les expressions XPath dans les gestionnaires d'événements si la valeur du paramètre MatchPath a été supprimée manuellement
Si vous ajoutez un gestionnaire d'événements à un groupe ou un champ, puis que vous modifiez par la suite le schéma de la source de données dans le volet Office Source de données et que cette modification affecte le champ ou le groupe (par exemple en le renommant ou en le déplaçant), un message s'affiche vous demandant si vous souhaitez mettre à jour les expressions XPath dans le code de votre formulaire. Les expressions XPath auxquelles ce message fait référence sont les valeurs spécifiées dans le paramètre MatchPath de l'attribut InfoPathEventHandlerAttribute qui sont utilisées pour associer le gestionnaire d'événements à un champ ou un groupe dans la source de données de votre formulaire. Aucune autre expression XPath dans votre code n'est mise à jour. L'algorithme de mise à jour des expressions XPath dépend d'une valeur présente dans le paramètre MatchPath des attributs InfoPathEventHandler appliqués au code de votre formulaire. Si vous supprimez manuellement ces valeurs avant de répondre à l'invite de mise à jour des expressions XPath, InfoPath ne peut pas mettre à jour automatiquement les expressions XPath. Pour plus d'informations, voir Procédure d'ajout d'un gestionnaire d'événements en utilisant le modèle objet InfoPath 2003.
Impossible d'appeler les membres du modèle objet compatible InfoPath 2003 dans un thread distinct
Le modèle objet compatible InfoPath 2003 ne prend pas en charge les appels dans un thread distinct. Par exemple, le code suivant qui appelle la fonction LaunchOMFunction, qui invoque à son tour les membres du modèle objet InfoPath, ne s'exécute pas.
Thread th = new Thread(new ThreadStart(LaunchOMFunction));
th.Start();
Si nécessaire, il existe un moyen de contourner cette limitation. Pour plus d'information, voir Prise en charge du threading dans les projets InfoPath à l'aide du modèle de projet InfoPath 2003.
Un seul processus InfoPath s'affiche dans la boîte de dialogue des processus Visual Studio lorsque plusieurs formulaires sont ouverts
Si vous ouvrez deux ou plusieurs formulaires InfoPath en mode Création, puis que vous ouvrez Visual Studio et que vous cliquez sur Déboguer les processus dans le menu Outils, une seule instance d'INFOPATH.EXE est affichée dans la liste Processus disponibles de la boîte de dialogue Processus. Ceci est lié à la conception du logiciel. Seule la fenêtre supérieure du processus INFOPATH.EXE est affichée dans la liste. Cependant, toutes les fenêtres InfoPath s'exécutent dans le même processus et sont rattachées au débogueur.
L'omission de paramètres crée une erreur de génération dans Visual Basic et Visual C#.
Si un membre du modèle objet InfoPath contient un paramètre facultatif et que vous ne spécifiez pas de valeur pour ce paramètre, vous devez transmettre le champ Type.Missing pour ce paramètre à la place. La non-transmission du champ Type.Missing lorsqu'une valeur réelle est omise provoque une erreur de génération. Ceci se produit aussi bien pour le code écrit en Visual Basic ou en Visual C#. Pour plus d'informations et d'exemples, voir la section « Transmission de paramètres facultatifs à des membres du modèle objet InfoPath » dans la rubrique Modèles objet compatibles avec InfoPath 2003.
Voir aussi
Concepts
Modèle de sécurité des modèles de formulaires avec code managé
Procédure de déploiement des projets InfoPath
Procédure de gestion des erreurs en utilisant le modèle objet InfoPath 2003
Procédure d'affichage d'un aperçu et de débogage des modèles de formulaires avec code managé qui nécessitent une autorisation totale
Procédure de débogage de projets InfoPath en utilisant le modèle objet InfoPath 2003