DeliveryChannel 要素 (ICF)
単一の配信チャネルのプロパティを表す要素が含まれます。
構文
<DeliveryChannels>
<DeliveryChannel>
要素の特性
特性 | 説明 |
---|---|
データ型 |
なし。 |
既定値 |
なし。 |
個数 |
DeliveryChannels 要素につき 1 個以上 (必須)。 |
更新 |
インスタンスの更新時に追加または削除できます。 |
要素の関係
関係 | 要素 |
---|---|
親要素 |
|
子要素 |
解説
配信チャネルは、SMTP サーバーなど、特定の配信エンドポイントを表します。各配信チャネルは、1 つの配信プロトコル (標準プロトコルまたはカスタム プロトコル) を基にし、配信プロトコルを使用して通知を配信するインスタンスを定義します。
配信チャネルは、サブスクライバ デバイスを通じてサブスクリプションに関連付けられます。たとえば、サブスクライバが携帯電話で通知を受信するように選択した場合は、SMS (ショート メッセージ サービス) 配信プロトコルを使用するように構成された配信チャネルが携帯電話サブスクライバ デバイスに関連付けられます。
通知の配信に使用される配信プロトコルごとに少なくとも 1 つの配信チャネルが必要です。通知の配信には、SMTP および File の標準配信プロトコルと、Protocols 要素で定義されているカスタム プロトコルが使用されます。
同じ配信プロトコルを使用する配信チャネルを複数定義することもできます。たとえば、1 つの SMS 配信プロトコルを定義し、それを 2 つの SMS エンドポイントで使用することができます。この場合、Protocols 要素で SMS のカスタム配信プロトコルを一度定義してから、DeliveryChannels 要素で 2 つの配信チャネルを定義します。
組み込みの SMTP 配信プロトコルを使用する配信チャネルを定義する場合は、1 つの SMTP 配信チャネルしか定義できません。これは Microsoft .NET Framework の SMTP 実装の制限によるものです。異なる SMTP サーバーを使用する 2 つの SMTP 配信チャネルを定義した場合、通知が間違った SMTP サーバーに送信されることがあります。
この問題を回避する 1 つの方法は、インターネット インフォメーション サービス (IIS) の SMTP サービスでスマート ホスト オプションを使用してメッセージを中継することです。まずスマート ホストを使用するように IIS の SMTP サービスを構成してから、SMTP 配信チャネルを次のように構成します。
<DeliveryChannel>
<DeliveryChannelName>EmailChannel</DeliveryChannelName>
<ProtocolName>SMTP</ProtocolName>
</DeliveryChannel>
IIS の SMTP サービスの構成の詳細については、Microsoft MSDN® ライブラリの「Using SMTP for Outgoing Messages」を参照してください。
使用例
次の例では、組み込みの File 配信プロトコルを使用する配信チャネルを構成しています。すべての File 通知のパスとファイル名は、FileName の値によって指定されています。
<DeliveryChannel>
<DeliveryChannelName>FileChannel</DeliveryChannelName>
<ProtocolName>File</ProtocolName>
<Arguments>
<Argument>
<Name>FileName</Name>
<Value>C:\Output\Output.htm</Value>
</Argument>
</Arguments>
</DeliveryChannel>
次の例では、IHttpProtocolProvider インターフェイスを使用して作成されたカスタム配信プロトコルの配信チャネルを構成しています。この例の PostURL の値はパラメータです。パラメータは、ParameterDefaults 要素で定義するか、Notification Services のインスタンスを作成するときに定義することができます。
詳細については、「カスタム配信プロトコルの開発」を参照してください。
<DeliveryChannel>
<ChannelName>HTTPChannel</ChannelName>
<ProtocolName>HTTPDeliveryProtocol</ProtocolName>
<Arguments>
<Argument>
<Name>ProtocolProviderClassName</Name>
<Value>MyHttpDeliveryProtocol</Value>
</Argument>
<Argument>
<Name>ProtocolProviderAssemblyName</Name>
<Value>%AppPath%\HTTPProtocol.dll</Value>
</Argument>
<Argument>
<Name>PostURL</Name>
<Value>%URL%</Value>
</Argument>
</Arguments>
</DeliveryChannel>