エラー:
分散トランザクションマネージャー(MSDTC)のネットワークアクセスが無効になっています。コンポーネントサービス管理ツールを使用して、MSDTCのセキュリティ構成でネットワークアクセスのDTCを有効にしてください。
using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope())
11 {
12 try
13 {
14 foreach (DataRow row in this.dt1.Rows)
15 {
16 int titleId = int.Parse(row["titleId"].ToString());
17 string fname = row["fname"].ToString();
18 string lname = row["lname"].ToString();
19
20 if (cmd.Parameters.Count > 0)
21 cmd.Parameters.Clear();
22
23 cmd.Parameters.AddWithValue("@titleId", titleId);
24 cmd.Parameters.AddWithValue("@fname", fname);
25 cmd.Parameters.AddWithValue("@lname", lname);
26 cmd.ExecuteNonQuery();
27
28 }
29 con.Close();
30 ts.Complete();
31 }
32 catch (Exception ex)
33 {
34
35 }
36 }
37 }
Windows Vista/7/8 Server 2008R2/2012で[〜#〜] msdtc [〜#〜]へのネットワークアクセスを有効にするには、次の手順に従います。
クリック開始、クリック実行、タイプdcomcnfg、次にクリック[〜#〜] ok [〜#〜]開くコンポーネントサービス。
コンソールツリーで、クリックして展開コンポーネントサービス、クリックして展開コンピューター、クリックして展開マイコンピューター、クリックして展開Distributed Transaction Coordinator次に、ローカルDTCをクリックします。
ローカルDTCを右クリックし、プロパティをクリックして、ローカルDTCプロパティダイアログボックスを表示します。
セキュリティタブをクリックします。
チェックマーク"ネットワークDTCアクセス"チェックボックス。
最後に、チェックボックス"インバウンドを許可"および"アウトバウンドを許可"チェックボックスをオンにします。
適用、[〜#〜] ok [〜#〜]をクリックします。
再起動サービスに関するメッセージがポップアップ表示されます。
[〜#〜] ok [〜#〜]をクリックすると、それだけです。
トランザクションスコープのCompleteメソッドの後で接続を閉じます。
ts.Complete();
con.Close();
完成したコードは
using (System.Transactions.TransactionScope ts = new Sytem.Transactions.TransactionScope())
{
try
{
foreach (DataRow row in this.dt1.Rows)
{
int titleId = int.Parse(row["titleId"].ToString());
string fname = row["fname"].ToString();
string lname = row["lname"].ToString();
if (cmd.Parameters.Count > 0)
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@titleId", titleId);
cmd.Parameters.AddWithValue("@fname", fname);
cmd.Parameters.AddWithValue("@lname", lname);
cmd.ExecuteNonQuery();
}
ts.Complete();
con.Close();
}
catch (Exception ex)
{
}
}