PDA

View Full Version : ترنزکشن



yavari
سه شنبه 18 دی 1386, 09:38 صبح
سلام

توی بعضی قسمتای برنامم نیاز دارم از ترنزکشن استفاده کنم مشکل اینجاست که برنامه ریموت به دیتابیس وصل میشه و همین که به ترنزکشن میرسه این ارور رو میده


Network access for Distributed Transaction Manager (MSDTC) has been disabled. Please enable DTC for network access in the security configuration for MSDTC using the Component Services Administrative tool.


1.Open your control panel, click on Administrative Tools.

2.Click on Component Service, expand the component service node, and then expand the Computers child node.

3.Right click on My Computer, choose “Properties”, and check if the MSDTC works.

این راه رو رفتم اما ارورش شد این :


Communication with the underlying transaction manager has failed.

Disabling firewall
start MSDTC
هم تحت سرور انجام دادم هم کلاینت
اما نمی فهمم مشکل چیه ؟ :گریه:
ضمن اینکه انجام اینکارا تحت کلاینت برام مسخره هست . :عصبانی++:

ممنون میشم دوستان راهنمائی کنن .

yavari
چهارشنبه 19 دی 1386, 13:36 عصر
سلام

با کمک دوستان متوجه شدم اگه value کلید TurnOffRpcSecurity و AllowOnlySecureRpcCalls را معکوس کنم (تحت کلاینت و سرور) مشکلم حل میشه .
اما انجام اینکار تحت کلاینتها ، اونم دستی غیر ممکنه !
برم کدی بنویسم که رجیستری کلاینت رو تغییر بدم ؟؟؟
آیا راه همینه ؟؟؟ راه دیگه ای ندارم ؟ :متفکر:

ممنون

hmm
چهارشنبه 19 دی 1386, 18:43 عصر
System.Data.SqlClient.SqlTransaction tr;
System.Data.SqlClient.SqlDataAdapter dap = new System.Data.SqlClient.SqlDataAdapter();
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();

conn.ConnectionString = YourConnection String;
cmd.Connection = conn;
conn.Open();
tr = conn.BeginTransaction();
cmd.Transaction = tr;

try
{
dap.SelectCommand = cmd;
sql = "Your insert,update,delete sql ";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();

}
catch
{
MessageBox.Show("Error");

tr.Rollback();

conn.Close();
return;
}
MessageBox.Show("Success");
tr.Commit();

conn.Close();