Problembehandlung von Formularvorlagen mit dem InfoPath 2003-Objektmodell zur Entwurfszeit

Die folgenden Abschnitte beschreiben allgemeine Problembehandlungsszenarien, die beim Entwerfen und Debuggen von Formularvorlagen mit verwaltetem Code auftreten können, die das vom Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace bereitgestellte InfoPath 2003-kompatible Objektmodell verwenden.

Das Anzeigen der Vorschau oder Debuggen von Formularvorlagen, die Aufrufe der Methoden und Eigenschaften der Objektmodell-Sicherheitsebene 3 verwenden, ist nicht möglich

Beim Versuch, ein Projekt mit verwaltetem Code zu debuggen oder in der Vorschau anzuzeigen, das Code zum Aufrufen von Objektmodellmembern enthält, die volle Vertrauenswürdigkeit erfordern, zeigt InfoPath eine Fehlermeldung an, die besagt, dass eine unbehandelte Sicherheitsausnahme im Formularcode aufgetreten ist, und das Formular wird nicht geöffnet. Um das Debuggen oder die Vorschau von Geschäftslogik in der Formularvorlage zu ermöglichen, müssen Sie die Sicherheitsebene auf Voll vertrauenswürdig festlegen und die Formularvorlage digital signieren. Details hierzu finden Sie unter Vorgehensweise: Anzeigen einer Vorschau und Debuggen von Formularvorlagen mit verwaltetem Code, die vollständig vertrauenswürdig sein müssen.

XPath-Ausdrücke in Ereignishandlern können nicht aktualisiert werden, wenn der Wert des MatchPath-Parameters manuell gelöscht wurde

Wenn Sie einen Ereignishandler einem Feld oder einer Gruppe hinzufügen und später das Schema der Datenquelle im InfoPath-Aufgabenbereich Datenquelle so ändern, dass sich die Änderung auf dieses Feld bzw. diese Gruppe auswirkt (z. B. durch Umbenennen oder Verschieben), wird eine Meldung mit der Frage angezeigt, ob die XPath-Ausdrücke im Formularcode aktualisiert werden sollen. Die XPath-Ausdrücke, auf die in dieser Meldung verwiesen wird, sind die im MatchPath-Parameter des InfoPathEventHandlerAttribute-Attributs angegebenen Werte. Diese werden verwendet, um den Ereignishandler einem Feld oder einer Gruppe in der Datenquelle des Formulars zuzuordnen. Es werden keine anderen XPath-Ausdrücke im Code aktualisiert. Der Algorithmus zum Aktualisieren der XPath-Ausdrücke hängt von einem Wert ab, der im MatchPath-Parameter der InfoPathEventHandler-Attribute vorhanden ist, die im Formularcode angewendet werden. Wenn Sie diese Werte vor dem Reagieren auf die Aufforderung zum Aktualisieren von XPath-Ausdrücken manuell gelöscht haben, kann InfoPath die XPath-Ausdrücke nicht automatisch aktualisieren. Weitere Informationen hierzu finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers mit dem InfoPath 2003-Objektmodell.

Member des InfoPath 2003-kompatiblen Objektmodells können nicht in einem getrennten Thread aufgerufen werden

Das InfoPath 2003-kompatible Objektmodell unterstützt keine Aufrufe in einem getrennten Thread. Der folgende Code beispielsweise, der die Funktion LaunchOMFunction aufruft, die wiederum Member des InfoPath-Objektmodells aufruft, wird nicht ausgeführt.

Thread th = new Thread(new ThreadStart(LaunchOMFunction));
th.Start();

Es gibt eine Möglichkeit zum Umgehen dieser Einschränkung. Weitere Informationen hierzu finden Sie unter Threadunterstützung in InfoPath-Projekten mit dem InfoPath 2003-Objektmodell.

Wenn mehrere Formulare geöffnet sind, wird nur ein InfoPath-Prozess im Visual Studio-Dialogfeld "Prozesse" angezeigt

Wenn Sie mehrere InfoPath-Formulare im Bearbeitungsmodus öffnen, anschließend Visual Studio öffnen und im Menü Extras auf Debugprozess klicken, wird in der Liste Verfügbare Prozesse des Dialogfelds Prozesse nur eine Instanz von INFOPATH.EXE angezeigt. Dies ist beabsichtigt. Es wird zwar nur das oberste Fenster des INFOPATH.EXE-Prozesses in der Liste angezeigt, doch sämtliche InfoPath-Fenster werden in demselben Prozess ausgeführt und mit dem Debugger verbunden.

Das Auslassen optionaler Parameter verursacht einen Buildfehler in Visual Basic und Visual C#

Wenn ein InfoPath-Objektmodellmember einen optionalen Parameter enthält und Sie keinen Wert für diesen Parameter angeben, müssen Sie für den Parameter stattdessen das Feld Type.Missing übergeben. Erfolgt keine Übergabe des Felds Type.Missing, führt das Auslassen eines tatsächlichen Werts zu einem Buildfehler. Dies gilt sowohl für in Visual Basic als auch in Visual C# geschriebenen Code. Weitere Informationen und Beispiele finden Sie im Abschnitt "Übergeben optionaler Parameter an InfoPath-Objektmodellmember" unter InfoPath 2003-kompatible Objektmodelle.

Siehe auch

Konzepte

Informationen zum Sicherheitsmodell für Formularvorlagen mit verwaltetem Code
Vorgehensweise: Bereitstellen von InfoPath-Projekten
Vorgehensweise: Behandeln von Fehlern mit dem InfoPath 2003-Objektmodell
Vorgehensweise: Anzeigen einer Vorschau und Debuggen von Formularvorlagen mit verwaltetem Code, die vollständig vertrauenswürdig sein müssen
Vorgehensweise: Debuggen von InfoPath-Projekten mit dem InfoPath 2003-Objektmodell