Utilizzo di parametri nel file di configurazione di un'istanza
Se si configura un'istanza di Notification Services utilizzando un file XML di configurazione dell'istanza (ICF), è possibile utilizzare i parametri seguenti per rendere l'ICF più sicuro, portatile e facilmente aggiornabile. È inoltre possibile passare valori dall'ICF ai file di definizione dell'applicazione (ADF).
Se si configura un'istanza di Notification Services a livello di programmazione, non sono presenti oggetti di parametro. È possibile utilizzare le variabili come singolo elemento per aggiornare un valore per la definizione dell'istanza e le definizioni delle applicazioni.
Parametri di Notification Services
Notification Services consente di utilizzare i parametri anzichè i valori di elemento. L'utilizzo dei parametri può essere vantaggioso per vari motivi:
- È possibile escludere i dati riservati dall'ICF e dagli ADF e specificare i valori solo quando si crea o si aggiorna l'istanza.
- È possibile definire un valore parametro una volta e utilizzarlo in più elementi.
- È possibile semplificare gli aggiornamenti di istanze e applicazioni inserendo i valori con maggiore probabilità di modifica in un'unica posizione.
All'interno di un ICF o ADF, un parametro da sostituire è analogo al seguente: %MyParam%
. Questo è il nome del parametro tra caratteri di percentuale. Quando si definisce un valore per il parametro, specificare il nome (MyParam
) e un valore per il parametro, ad esempio MyServer
.
Quando si crea o si aggiorna l'istanza, Notification Services sostituisce il parametro (%MyParam%
) con il valore specificato (MyServer
).
Per l'ICF, è possibile specificare i valori dei parametri nell'elemento ParameterDefaults, nella riga di comando nscontrol oppure nelle finestre di dialogo SQL Server Management Studio utilizzate per creare o aggiornare l'istanza. Tuttavia, SQL Server Management Studio consente un solo livello di sostituzione di parametri. Ad esempio, il parametro A può fare riferimento al parametro B solo se B non fa a sua volta riferimento a un altro parametro.
Definizione dei valori predefiniti dei parametri nell'ICF
È possibile specificare i valori per i parametri dell'ICF nell'elemento ParameterDefaults dell'ICF. Notification Services legge i nomi e i valori dei parametri da tale elemento e quindi sostituisce i parametri corrispondenti con i valori specificati.
Ad esempio, è possibile utilizzare un parametro per un percorso di file comune a più elementi. È possibile denominare il parametro BaseDirPath
e creare i seguenti elementi nell'ICF:
<BaseDirectoryPath>%BaseDirPath%\Stock</BaseDirectoryPath>
...
<AssemblyName>%BaseDirPath%\SMS.dll</AssemblyName>
È quindi possibile specificare un valore per %BaseDirPath%
come segue:
<ParameterDefaults>
<Parameter>
<Name>BaseDirPath</Name>
<Value>C:\NS</Value>
</Parameter>
</ParameterDefaults>
Quando si crea o si aggiorna l'istanza, Notification Services sostituisce ogni occorrenza di (%BaseDirPath%
) nell'ICF con la stringa "C:\NS". Dal punto di vista logico questo corrisponde all'utilizzo degli elementi seguenti nell'ICF:
<BaseDirectoryPath>C:\NS\Stock</BaseDirectoryPath>
...
<AssemblyName>C:\NS\SMS.dll</AssemblyName>
Definizione dei valori dei parametri nella creazione e aggiornamento di un'istanza
Per mantenere i valori dei parametri esterni all'ICF, è possibile specificare i valori al momento della creazione o dell'aggiornamento dell'istanza oppure all'interno di variabili di ambiente. Ad esempio, se si utilizza l'utilità del prompt dei comandi nscontrol per creare l'istanza, è possibile specificare valori di nome utente e password dalla riga di comando.
In questo esempio, il canale di recapito richiede un nome utente e una password. Dato che non si desidera includere questi dati nell'ICF, utilizzare i parametri:
<DeliveryChannel>
<DeliveryChannelName>MyChannel</DeliveryChannelName>
<ProtocolName>MyProtocol</ProtocolName>
<Arguments>
<Argument>
<Name>UserName</Name>
<Value>%User%</Value>
</Argument>
<Argument>
<Name>Password</Name>
<Value>%Pwd%</Value>
</Argument>
</Arguments>
</DeliveryChannel>
È quindi possibile specificare i valori per i parametri dalla riga di comando:
nscontrol create -in "C:\NS\InstanceConfig.xml" User=<userName>
Pwd=<enterStrongPasswordHere>
È inoltre possibile specificare i valori dei parametri se si crea o si aggiorna l'istanza utilizzando SQL Server Management Studio.
Precedenza dei valori dei parametri
È possibile definire un valore per lo stesso parametro nella sezione ParameterDefaults, come variabile di ambiente, e quando si crea o si aggiorna l'istanza. Per questo motivo esiste la precedenza tra i valori dei parametri:
- I valori dei parametri specificati quando si crea o si aggiorna l'istanza avranno la precedenza sui valori specificati nelle variabili di ambiente e nella sezione ParameterDefaults.
- Le variabili di ambiente hanno la precedenza sui valori di ParameterDefaults.
- I valori di ParameterDefaults hanno la priorità minima.
Passaggio di parametri a un ADF
All'interno dell'ICF, si utilizza l'elemento Application per descrivere un'applicazione ospitata dall'istanza. L'elemento Application dispone di un elemento figlio Parameters. È possibile utilizzare questo elemento figlio per definire i valori dei parametri per l'ADF.
Ad esempio, nell'ADF è necessario definire quale server esegue i provider di eventi hosted, il generatore e i server di distribuzione. È possibile eseguire tale operazione tramite gli elementi SystemName nell'ADF. Se si eseguono tutti i componenti su un server e si desidera definire il nome server quando si crea l'istanza, è possibile utilizzare i parametri nell'ADF:
<HostedProvider>
...
<SystemName>%ApplicationServer%</SystemName>
...
<Generator>
<SystemName>%ApplicationServer%</SystemName>
...
<Distributor>
<SystemName>%ApplicationServer%</SystemName>
È quindi possibile definire un valore per il parametro nell'elemento Application dell'ICF:
<Application>
...
<Parameters>
<Parameter>
<Name>ApplicationServer</Name>
<Value>Server01</Value>
</Parameter>
</Parameters>
</Application>
Quando si crea l'istanza, Notification Services sostituisce ogni occorrenza di %ApplicationServer%
nell'ADF con il valore Server01
.
È inoltre possibile specificare i valori dei parametri per l'ADF nell'elemento ParameterDefaults dell'ADF.
È possibile combinare questi metodi di sostituzione in base alle necessità. Ad esempio, se si intende utilizzare un parametro, quale %AppServer%
, per il valore ApplicationServer
, è possibile specificare un valore per %AppServer%
sulla riga di comando.
Vedere anche
Concetti
Impostazione del nome dell'istanza
Impostazione del nome del sistema di database
Definizione del database dell'istanza
Associazione di applicazioni a un'istanza
Definizione dei protocolli di recapito personalizzati
Definizione dei canali di recapito
Configurazione della crittografia degli argomenti
Specificazione della versione e della cronologia dell'istanza
Utilizzo dei parametri nel file di definizione dell'applicazione (ADF)
Altre risorse
Configurazione delle istanze di Notification Services
ParameterDefaults Element (ICF)
Parameters Element (ICF)
ParameterDefaults Element (ADF)
Utilità nscontrol
Definizione di applicazioni di Notification Services