TransactionScope 和 Npgsql - 准备好的事务问题

发布于 2024-12-09 06:35:23 字数 804 浏览 2 评论 0原文

我有以下代码:

//...
using (TransactionScope tScope = new TransactionScope())
        {
            using (NpgsqlConnection myConnection = new NpgsqlConnection(_MyConnectionString))
            {
                try
                {
                    myConnection.Open();

                    //...

                    tScope.Complete();
                }
                catch (Exception ex)
                {
                    logger.Error(ex);
                }
                finally
                {
                    myConnection.Close();
                }
            }
        }
//...

问题是,当发生某些错误时,transactionscope 会回滚,但是,在 PostgreSQL 服务器上我已经准备好了事务。在我手动删除准备好的事务之前,应用程序无法与数据库服务器一起工作。

有什么解决办法吗?

顺便说一句,我使用 Npgsql 版本:2.0.11.91

最好的问候

I have following code:

//...
using (TransactionScope tScope = new TransactionScope())
        {
            using (NpgsqlConnection myConnection = new NpgsqlConnection(_MyConnectionString))
            {
                try
                {
                    myConnection.Open();

                    //...

                    tScope.Complete();
                }
                catch (Exception ex)
                {
                    logger.Error(ex);
                }
                finally
                {
                    myConnection.Close();
                }
            }
        }
//...

The problem is, when some error occurred transactionscope do rollback, but, on the PostgreSQL server I have prepared transaction. And applications can not work anything with database server until I delete prepared transaction manualy.

Any solution?

BTW, I use Npgsql version: 2.0.11.91

Best regards

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文