Share via


Verwenden von Parametern in einer Anwendungsdefinitionsdatei (Application Definition File, ADF)

Wenn Sie eine Notification Services-Anwendung in einer XML-Anwendungsdefinitionsdatei (ADF) definieren, können Sie Parameter verwenden, um die Sicherheit, Portierbarkeit und Aktualisierbarkeit der ADF zu verbessern. Sie können auch Werte aus einer Instanzkonfigurationsdatei (Instance Configuration File, ICF) an ADFs übergeben.

Wenn Sie eine Anwendung programmgesteuert definieren, sind keine Parameterobjekte vorhanden. Sie können Variablen verwenden, wenn Sie eine einzelne Stelle zum Aktualisieren eines Wertes für eine Anwendung verwenden möchten.

Notification Services-Parameter

Notification Services ermöglicht es Ihnen, Parameter an Stelle von Elementwerten zu verwenden. Das Verwenden von Parametern kann aus verschiedenen Gründen vorteilhaft sein:

  • Sie können vertrauliche Daten außerhalb der Anwendungsdefinition speichern und die Werte nur dann angeben, wenn Sie die Anwendung erstellen oder aktualisieren.
  • Sie können einen Parameterwert einmal definieren und dann in mehreren Elementen verwenden.
  • Sie können Instanz- und Anwendungsaktualisierungen vereinfachen, indem Sie Werte, die wahrscheinlich geändert werden, an einer Stelle platzieren.

Ein zu ersetzender Parameter sieht innerhalb einer ADF wie folgt aus: %MyParam%. Das ist der von Prozentzeichen umgebene Parametername. Er ähnelt einer Umgebungsvariablen. Beim Definieren eines Wertes für den Parameter geben Sie den Namen (MyParam) und einen Wert für den Parameter an, z. B. MyServer. Wie bei Umgebungsvariablen wird auch bei Parameternamen nicht nach Groß-/Kleinschreibung unterschieden.

Beim Erstellen oder Aktualisieren der Anwendung wird der Parameter (%MyParam%) von Notification Services durch den von Ihnen angegebenen Wert (MyServer) ersetzt.

Für die ADF können Sie Parameterwerte im ParameterDefaults-Element der ADF bereitstellen. Sie können Werte aus der ICF an die Anwendung übergeben, indem Sie Parameternamen und -werte im Application-Abschnitt der ICF definieren.

ms166503.note(de-de,SQL.90).gifWichtig:
Wenn Sie Parameter in einer ADF oder ICF verwenden, jedoch beim Erstellen oder Aktualisieren der Instanz keine Werte für die Parameter bereitstellen, kann der Erstellungs- oder Aktualisierungsvorgang nicht ausgeführt werden.

Definieren von Standardwerten für Parameter in der ADF

Sie können Werte für ADF-Parameter im ParameterDefaults-Element der ADF bereitstellen. Notification Services liest die Parameternamen und -werte aus diesem Element und ersetzt dann die entsprechenden Parameter durch die angegebenen Werte.

Sie können z. B. einen Parameter für einen Dateipfad verwenden, der von mehreren Elementen verwendet wird. Sie können BaseDirPath als Namen für diesen Parameter festlegen und die folgenden Elemente in der ADF erstellen:

<BaseDirectoryPath>%BaseDirPath%\Stock</BaseDirectoryPath>
...
<AssemblyName>%BaseDirPath%\MyContentFormatter.dll</AssemblyName>

Dann können Sie einen Wert für %BaseDirPath% wie folgt bereitstellen:

<ParameterDefaults>
    <Parameter>
        <Name>BaseDirPath</Name>
        <Value>C:\NS</Value>
    </Parameter>
</ParameterDefaults>

Wenn Sie die Instanz erstellen oder aktualisieren, wird jedes Auftreten von %BaseDirPath% in der ADF von Notification Services durch die Zeichenfolge "C:\NS" ersetzt. Diese Verfahren entspricht logisch dem Verwenden der folgenden Elemente in der ADF:

<BaseDirectoryPath>C:\NS\Stock</BaseDirectoryPath>
...
<AssemblyName>C:\NS\SMS.dll</AssemblyName>

Übergeben von Parametern aus einer ICF

Sie können innerhalb der ICF das Application-Element verwenden, um eine von der Instanz gehostete Anwendung zu beschreiben. Das Application-Element weist ein untergeordnetes Parameters-Element auf. Verwenden Sie dieses untergeordnete Element, um Parameterwerte für die ADF zu definieren.

In der ADF muss z. B. definiert werden, auf welchen Servern die gehosteten Ereignisanbieter, der Generator und die Verteiler ausgeführt werden. Verwenden Sie hierzu die SystemName-Elemente in der ADF. Wenn alle Komponenten auf einem Server ausgeführt werden und Sie den Servernamen beim Erstellen der Instanz definieren möchten, können Sie Parameter in der ADF verwenden:

<HostedProvider>
    ...
    <SystemName>%ApplicationServer%</SystemName>
    ...
    <Generator>
        <SystemName>%ApplicationServer%</SystemName>
    ...
    <Distributor>
        <SystemName>%ApplicationServer%</SystemName>
    ...

Sie können dann einen Wert für diesen Parameter im Application-Element der ICF definieren:

<Application>
    ...
    <Parameters>
        <Parameter>
            <Name>ApplicationServer</Name>
            <Value>Server01</Value>
        </Parameter>
    </Parameters>
</Application>

Wenn Sie die Instanz erstellen, wird jedes Auftreten von %ApplicationServer% in der ADF von Notification Services durch den Wert "Server01" ersetzt.

Übergeben von Parametern beim Kompilieren einer Instanz

Wenn Sie Parameterwerte nicht in der ADF und ICF speichern möchten, können Sie die Werte beim Erstellen oder Aktualisieren der Instanz oder in Umgebungsvariablen bereitstellen. Wenn Sie das nscontrol-Befehlszeilenprogramm zum Erstellen einer Notification Services-Instanz verwenden, können Sie z. B. Werte für den Benutzernamen und das Kennwort in der Befehlszeile bereitstellen.

Sie können diese Werte an die ADF übergeben, indem Sie für den Application-Abschnitt der ICF Parameter verwenden. Für das Beispiel oben bedeutet dies, dass Sie den %Server%-Parameter wie im folgenden Code gezeigt verwenden, anstatt den Anwendungsserver in der ICF zu definieren:

<Application>
    ...
    <Parameters>
        <Parameter>
            <Name>ApplicationServer</Name>
            <Value>%Server%</Value>
        </Parameter>
    </Parameters>
</Application>

In der Befehlszeile können Sie dann Werte für den Parameter bereitstellen:

nscontrol create -in "C:\NS\InstanceConfig.xml" Server=Server01

Wenn Sie die Instanz erstellen oder aktualisieren, wird %Server% in der ICF durch den Wert Server01 ersetzt. Server01 ersetzt dann alle Vorkommen von %ApplicationServer% in der ADF.

Zudem können Sie Parameter an die ADF übergeben, wenn Sie SQL Server Management Studio zum Erstellen und Aktualisieren von Notification Services-Instanzen verwenden. SQL Server Management Studio lässt jedoch nur ein der Stufe der Parameterersetzung zu. Parameter A kann beispielsweise nur dann auf Parameter B verweisen, wenn B nicht auf einen anderen Parameter verweist.

Rangfolge von Parameterwerten

Das Definieren eines Wertes für diesen Parameter ist auch im ParameterDefaults-Abschnitt als Umgebungsvariable möglich, sowie beim Erstellen oder Aktualisieren der Instanz. Aus diesem Grund ist eine Rangfolge zwischen Parameterwerten festgelegt:

  • Parameterwerte, die bereitgestellt werden, wenn die Instanz erstellt oder aktualisiert wird, haben höchste Priorität und setzen Werte außer Kraft, die in Umgebungsvariablen und im ParameterDefaults-Abschnitt bereitgestellt sind.
  • Umgebungsvariablen setzen ParameterDefaults-Werte außer Kraft.
  • ParameterDefaults-Werte weisen die niedrigste Priorität auf.

Siehe auch

Konzepte

Verwenden von Parametern in einer Instanzkonfigurationsdatei

Andere Ressourcen

ParameterDefaults Element (ADF)
Parameter Element (ADF)
ParameterDefaults Element (ICF)
nscontrol (Dienstprogramm)
Definieren von Notification Services-Anwendungen
Konfigurieren von Instanzen von Notification Services

Hilfe und Informationen

Informationsquellen für SQL Server 2005