Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在控制器的操作中使用TransactionScope_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 在控制器的操作中使用TransactionScope

Asp.net mvc 在控制器的操作中使用TransactionScope,asp.net-mvc,Asp.net Mvc,以下代码中出现“服务器上的MSDTC'ADMIN-PC\SQLEXPRESS'不可用”错误 客户类别: public class Customer { public int Id; public string CustomerName; public string CustomerID; } 控制器导致所述错误的动作: public ActionResult CreateCustomerLogins() { List&l

以下代码中出现“服务器上的MSDTC'ADMIN-PC\SQLEXPRESS'不可用”错误

客户类别:

public class Customer
{
   public int Id;
   public string CustomerName;
   public string CustomerID;
}
控制器导致所述错误的动作:

        public ActionResult CreateCustomerLogins()
        {
            List<Customer> customer = new List<Customer>;
            customers = c.GetCustomerList(); // returns List<Customer>
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    foreach (Customer item in customers)
                    {
                        WebSecurity.CreateUserAndAccount(item.CustomerName, item.CustomerID);
                    }
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException tae)
            {
                ModelState.AddModelError("Error", "Error generating customer logins.");
            }


            return Json(new { });
        }
public ActionResult CreateCustomerLogins()
{
列表客户=新列表;
customers=c.GetCustomerList();//返回列表
尝试
{
使用(TransactionScope范围=新TransactionScope())
{
foreach(客户中的客户项目)
{
WebSecurity.CreateUserAndAccount(item.CustomerName,item.CustomerID);
}
scope.Complete();
}
}
捕获(TransactionBortedException tae)
{
AddModelError(“错误”,“生成客户登录名时出错”);
}
返回Json(新{});
}

我的代码怎么了

SQL Express不直接支持MSDTC

看看这是否有帮助:

要完全启用MS DTC,请执行以下操作:

1.在“控制面板”中,打开“管理工具”,然后双击“组件服务”

2.在控制台根目录的左窗格中,单击组件服务,然后展开计算机

3.右键单击“我的电脑”,然后单击“属性”

4.在MSDTC选项卡上,单击安全配置

5.在安全设置下,选中所有复选框


6.验证DTC登录帐户名是否设置为NT AUTHORITY\NetworkService

谢谢。这就成功了。你认为我使用TransactionScope的方式有效吗?如果其中的代码失败,是否会回滚是的,代码是正确的。如果事务失败,您需要执行回滚,因此不要调用complete。所以你的代码在这里看起来很好。更多信息和您的参考资料,请参阅此页。。。。