WS-AtomicTransactionを使用できるように設定した環境はWindows Vistaです。.NETのバージョンは3.0以降がインストールされているとします。

設定環境

  • Windows Vista Enterprise
  • 要.NET 3.0以上, Windows SDK V6.0以上

1.WS-ATを有効にする

1.1 WsagConfig.exeでやってみる版(失敗)

WS-AtomicTransactionを有効にするためにコマンドラインツールではWsatConfig.exeを使用します。WsatConfigはデフォルトでは%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundationフォルダに存在します。フォルダに移動して、次のコマンドを入力するとエラーメッセージが出力されました。

WsatConfig.exe -network:enable -restart

 

 

Cannot enable network support because Network DTC Access is disabled, or both Inbound and Outbound communication are disabled.と出力されます。DTC Accessが有効になっていないか、Inbound,Outbound通信が無効になっているとのこと。なのでTechNetの参考に以降の処理を進めます。

1.2 WS-ATのGUIスナップインをインストール

以降の処理で作業が進めやすいように、WS-ATのプロパティをGUIで設定できるようにする方法があるので、そちらを設定します。Widnwos SDK 6のインストールフォルダのbinフィルだにあるスナップインを以下のコマンドでインストールします。パスは環境に合わせて変更して下さい。また、掲載時にはSDKのV6.1がリリースされています。

regasm /codebase C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin\WsatUI.dll

Vistaでは後述するComponent Services管理ツールのプロパティにWS-ATというタブが追加されます。

2.ネットワークDTCアクセスを有効にする

VistaとWindows 2008 Serverの場合は以下のページにしたがってVistaでネットワーク DTC アクセスを有効にします。

ネットワークアクセスを有効にする
http://www.microsoft.com/japan/technet/windowsserver/2008/library/1f6d0a27-533b-4516-8656-b492f1649e9f.mspx?mfr=true

[スタートメニュー]→[Run..](プログラムを指定して実行)でdcomcnfg.exe(またはcomexp.msc)と入力し、Component Services 管理ツールを起動します。Comsole Root→Component Services→My Computer→Distributed Transaction Coordinatorと展開し、Local DTCを右クリックしてプロパティを開き、Securityタブを選択します。

 

 

下図のようにNetwork DTC Access,Allow InboundおよびAllow Outboundのチェックボックスにチェックを入れます。[Apply]ボタンを押します。プロパティ画面は閉じません。

 

 

Vindows Server 2003の場合DTCアクセスの有効化は以下を参照
http://support.microsoft.com/kb/817064/ja

3. WS-ATを有効にする

2.で表示したLocal DTC Properties画面のWS-ATを選択します。(WS-ATが表示されていない場合は、本ページの1節を参照)

 

 

Enable WS-Atomic Transaction network supportにチェックを入れます。ポートをサンプルで使用する8057と入力し、Endpoint certificateのSelectボタンをクリックし、WCF Sample 009 : BasicHttpBindingでトランスポートレベルセキュリティを実装する で作成した証明書を選択します。

 

 

 

 

Applyボタンをクリックすると、サービスの再起動を行う確認メッセージダイアログがでるので、OKボタンをクリックします。プロパティダイアログのOKボタンで画面を閉じます。

設定は以上です。