c# - con.Open() 失败异常 具有 IsolationLevel 快照的事务无法提升

标签 c# sql-server

当应用程序“使用”为“低”时,以下代码正在工作,插入正在发生。

一旦我使用率很高,我就会收到错误

Transactions with IsolationLevel Snapshot cannot be promoted

当我尝试打开连接时。 异常发生在“cn.Open()”行;

我尝试将数据库的 snapshot_isolation_state 设置为 0 或 1, 或 is_read_commited_snapshot_on 为 0 或 1...,我什至尝试在 C# 代码上使用事务...但没有什么区别。

在这种情况下我不关心事务,我只想插入(不更新)....

如何解决这个问题?

我的代码:

var connectionString = @"data source=XXXX\SQL2005;initial catalog=pw_LogDBStack;user id=XXXX;password=XXXX;";
string query = "INSERT INTO LogEntry (DateTime, CallerMethod, Stack, Query) VALUES ( @DateTime, @CallerMethod, @Stack, @Query)";
//SqlTransaction transaction = null;
using (SqlConnection cn = new SqlConnection(connectionString))
{
    cn.Open();
    //transaction = cn.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
    //using (SqlCommand cmd = new SqlCommand(query, cn, transaction))
    using (SqlCommand cmd = new SqlCommand(query, cn))
    {
        cmd.Parameters.AddWithValue("@DateTime", DateTime.Now);
        cmd.Parameters.AddWithValue("@CallerMethod", callerMethod);
        cmd.Parameters.AddWithValue("@Stack", stackStr);
        cmd.Parameters.AddWithValue("@Query", c.Command.ToTraceString());
        cmd.ExecuteNonQuery();
    }
    //transaction.Commit();
    cn.Close();
}

最佳答案

我可以通过将该属性添加到连接字符串来解决此问题 Enlist=false;

https://www.connectionstrings.com/all-sql-server-connection-string-keywords/

关于c# - con.Open() 失败异常 具有 IsolationLevel 快照的事务无法提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36643204/

相关文章:

c# - Crystal 报表——关闭数据库连接

sql-server - 查找SQL记录中的并发用户数

c# - 如何使用 RazorGenerator 而不是 T4 来生成 C# 文件?

c# - 当方法具有属性时,StyleCop SA1623 是否会错误触发?

c# - 是否可以根据其他复选框状态来选中/取消选中某个复选框?

c# - 在 REST 服务中反序列化 JSON

c# - 当我尝试对 PowerPoint 2013 使用 UI 自动化时,我只能在使用 RangeFromPoint 时获取第一个字符/单词

sql-server - sql 从函数或存储过程返回表

sql - 在 nvarchar(max) 列上选择非常慢

sql-server - 即使使用 Unicode 源和目标 (SSIS),字符也会显示不正确