Entwickeln eines benutzerdefinierten Inhaltsformatierers

Von Notification Services wird ein integrierter Inhaltsformatierer bereitgestellt, der auf Extensible Stylesheet Transformation Language (XSLT) basiert und Sie beim raschen Entwickeln von Anwendungen unterstützt. Wenn Sie die Benachrichtigungsdaten mithilfe von anderen Techniken formatieren möchten, müssen Sie jedoch einen benutzerdefinierten Inhaltsformatierer entwickeln.

IContentFormatter-Schnittstelle

Inhaltsformatierer sind Komponenten, die Benachrichtigungsdaten in unformatierter Form als Eingabe enthalten und formatierte Benachrichtigungsmeldungen zurückgeben. Inhaltsformatierer werden vom Verteiler geladen, der vom Notification Services-Modul gehostet wird. Der Verteiler interagiert mit Inhaltsformatierern über eine Schnittstelle, die IContentFormatter genannt wird.

Zum Entwickeln eines benutzerdefinierten Inhaltsformatierers müssen Sie eine Klasse entwickeln, die die IContentFormatter-Schnittstelle implementiert. Diese Schnittstelle ist im Microsoft.SqlServer.NotificationServices-Namespace verfügbar.

Der Verteiler ruft den Inhaltsformatierer für jede Nachricht auf, die formatiert werden muss. Diese Nachricht kann eine einzelne Benachrichtigung oder eine Digestbenachrichtigung sein, oder es kann sich um die Benachrichtigungsdaten einer Multicastnachricht handeln.

Der Verteiler ruft zunächst Initialize auf, dann FormatContent für jede zu formatierende Nachricht, und nach Beendigung des Arbeitselements wird die Close-Methode aufgerufen. Die FormatContent-Methode wird nicht mehr aufgerufen, es sei denn, die Initialize-Methode wird zuerst aufgerufen.

Tritt bei der Formatierung ein Fehler auf, kann die FormatContent-Methode eine Ausnahme ausgeben. Der Verteiler protokolliert die Ausnahme im Anwendungsprotokoll und markiert die Benachrichtigung als fehlgeschlagen. Die fehlgeschlagene Benachrichtigung wird nicht an das Übermittlungsprotokoll gesendet. Wenn die Benachrichtigungsklasse so konfiguriert ist, dass Benachrichtigungen wiederholt werden, wird die Benachrichtigung im nächsten Wiederholungsintervall zum Formatieren ausgewählt.

Die Methoden Initialize und Close sollten niemals Ausnahmen auslösen.

Sie müssen den benutzerdefinierten Inhaltsformatierer als eine Klasse in einer Assembly mit verwaltetem Code implementieren. Diese Assembly kann sich an einer beliebigen Stelle befinden, auf die die Benachrichtigungsanwendung zugreifen kann.

Formatieren von Benachrichtigungen

Wenn der Verteiler den Inhaltsformatierer initialisiert, indem der Verteiler die Initialize-Methode aufruft, werden alle deklarierten Argumente und die Digestübermittlungseinstellung übergeben. Die Implementierung des Inhaltsformatierers sollte diese Werte für eine Selbstkonfiguration verwenden und alle verwendeten Einstellungen speichern. Wenn der Verteiler den Inhaltsformatierer zum Formatieren einer Benachrichtigungsmeldung aufruft, ruft er die FormatContent-Methode auf und übergibt ein Array von Hashtabellen, die Benachrichtigungsdaten für den Inhaltsformatierer enthalten. Die Benachrichtigungsdaten enthalten das Gebietsschema des Abonnenten und den Gerätetyp.

Abhängig von der Anwendung muss die Implementierung des Inhaltsformatierers die Formatierung von Digestbenachrichtigungen, mehrere Geräte und mehrere Gebietsschemas behandeln.

Verwenden eines benutzerdefinierten Inhaltsformatierers

Zum Verwenden eines benutzerdefinierten Inhaltsformatierers muss dieser in der Anwendungsdefinition deklariert sein. Wenn Sie einen Inhaltsformatierer deklarieren, stellen Sie den Klassennamen, den Assemblynamen und die Namen und Werte alle Argumente bereit, die zum Initialisieren des Inhaltsformatierers erforderlich sind. Weitere Informationen finden Sie unter Konfigurieren von Inhaltsformatierern.

ms166410.note(de-de,SQL.90).gifWichtig:
Der benutzerdefinierte Inhaltsformatierer wird mit denselben Berechtigungen wie der Verteiler ausgeführt, der vom Notification Services-Modul ausgeführt wird. Das Konto, unter dem das Notification Services-Modul ausgeführt wird, muss über die Berechtigung für den Zugriff auf die Assembly verfügen.

Siehe auch

Konzepte

Sicherheitsüberlegungen für Notification Services

Andere Ressourcen

XSLT-Inhaltsformatierer
Entwickeln von benutzerdefinierten Notification Services-Komponenten

Hilfe und Informationen

Informationsquellen für SQL Server 2005