質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

0回答

3414閲覧

MSDTCの設定について

micchi

総合スコア36

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2021/11/19 03:03

C# のTransactionScopeクラスを使用してトランザクションを掛けた状態で
SQL Serverの複数のテーブルに書込をしようとしたところ

「分散トランザクション マネージャー (MSDTC) のネットワーク アクセスは無効にな っています。 コンポーネント サービス管理ツールを使用して、MSDTC のセキュリティ構成でネットワーク アクセスの DTC を有効にしてください。」

というエラーになりました

https://www.generacodice.com/jp/articolo/24689/How-do-I-enable-MSDTC-on-SQL-Server
こちらのページを参考にMSDTCの設定をし、ファイヤーウォールもオフにしたのですが
やはりMSDTCのメッセージが変わりません
イメージ説明

何が良くなくてこの様なメッセージが出ているのでしょう

そもそも分散トランザクションになるような状況でも無いと思うのですが・・・

C# は2015(Windows10上の.NetFramework4.6)
SQLServerは2016(Windows Server 2016)です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2021/11/19 03:57

経験上TransactionScopeクラスは最も厄介なトランザクションの手段です。 TransactionScopeクラスを使わずトランザクションを掛けるって選択肢はありますか?
hihijiji

2021/11/19 04:30

TransactionScopeクラスの説明に[接続を分散トランザクションに暗黙的に参加させる]とあります。 一見便利そうに聞こえますが、暗黙云々を使いこなすには全てのパターンに対して熟知している必要があります。 その上で環境に応じて対処して置かなければなりません。 本番環境とそっくり同じ開発環境を用意できなければ現地で冷や汗をかきながら対処することになります… また環境が変わると突然分散トランザクションに昇格し、それによる不具合発生なんてこともあるかもしれません。
micchi

2021/11/19 05:55

以前からあるプログラムなので他の方法はとれません(1-2行で代替できるなら可能かとは思いますが) ですのでMSDTCを正しく設定する方法が知りたいです
hihijiji

2021/11/20 02:17

実際に何回かはまった経験では、MSDTC の設定で解決したことは一度もありません。
micchi

2021/11/22 01:58

本当に分散トランザクションが必要なときの設定がわかればそれでいいです
hihijiji

2021/11/22 02:38

分散トランザクションを使うためには、以下の2つを満たす必要があります。 ・分散トランザクションが正しく機能するように環境構築されている。 ・分散トランザクションが使えるように環境が常に維持-管理されている。 だから ・DB系インフラ担当者がいる場合→担当者に聞く ・DB系インフラ担当者がいない場合→分散トランザクションは使えないのでどんな設定をしても無駄
hihijiji

2021/11/22 02:45

あくまでも私見で10年ちょい前の評価ですが、 TransactionScopeクラスは現場を知らない開発者が机上の空論で生んだ失敗作だから使わないほうが良い(反論歓迎) って結論に達しました。 もちろん分散トランザクションに昇格しないように書く方法はあります。 ただしその場合にはTransactionScopeクラスを使わない方が簡単で誤解を生みにくくなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問