1. ホーム
  2. sql-server

[解決済み] SQL ServerでMSDTCを有効にするにはどうすればよいですか?

2022-09-16 14:17:14

質問

これは有効な質問でしょうか。MSTDC を使用している .NET Windows アプリがありますが、例外をスローしています。

System.Transactions.TransactionManagerCommunicationException を発生させました。Distributed Transaction Manager (MSDTC) 用のネットワーク アクセスは無効になっています。MSDTC のセキュリティ設定で DTC のネットワーク アクセスを有効にしてください。 Component Services Administrative toolを使用して、MSDTCのセキュリティ構成でDTCのネットワークアクセスを有効にしてください。トランザクションマネージャは、リモート/ネットワークトランザクションのサポートを無効にしています。 トランザクションのサポートを無効にしています。(HRESULTからの例外: 0x8004D024) at System.Transactions.Oletx.IDtcProxyShimFactory.ReceiveTransaction(UInt32 propgationTokenSize, Byte[] propgationToken, IntPtr managedIdentifier.Guid& transactionIdentifier.PropgationTokenSize。 トランザクションを受信します。 isolationLevel, ITransactionShim& transactionShim)....

私がフォローしたのは Kbalertz ガイドに従って、MSDTC を有効にしました。 を有効にしましたが、エラーはまだ発生しています。

これは、データベースの問題なのでしょうか?もしそうであれば、どのように解決すればよいのでしょうか。

どのように解決するのですか?

Windows Server 2008 r2 および Windows Server 2012 R2 で使用します。

  1. クリック 開始 をクリックします。 をクリックします。 実行 タイプ dcomcnfg と入力し OK をクリックすると コンポーネントサービス .

  2. コンソールツリーで、クリックして展開する コンポーネント サービス をクリックし、展開します。 コンピュータ クリックすると拡大します マイコンピュータ クリックすると拡大します 分散トランザクションコーディネータ をクリックし、次に ローカルDTC .

  3. 右クリック ローカルDTC をクリックし プロパティ を表示させ ローカル DTC プロパティ ダイアログボックスを表示します。

  4. をクリックします。 セキュリティ タブをクリックします。

  5. チェックマーク ネットワークDTCアクセス"。 のチェックボックスをオンにします。

  6. 最後にチェックマーク インバウンドを許可する("Allow Inbound")。 "アウトバウンドを許可する" のチェックボックスがあります。

  7. クリック をクリックします。 適用 , をクリックします。 OK .

  8. に関するメッセージがポップアップ表示されます。 再起動 に関するメッセージが表示されます。

  9. クリック OK をクリックし、終了です。

参考文献: https://msdn.microsoft.com/en-us/library/dd327979.aspx

注意 ローカルコンピュータやサーバーのネットワークファイアウォールが接続を妨害することがありますので、以下のルールを作成してください。 インバウンドを許可する。 "アウトバウンドを許可する" の接続を許可します。 C:\Windows\System32\msdtc.exe