gpt4 book ai didi

c# - 当数据库中的事务完成但连接问题导致异常时,如何解决这种情况?

转载 作者:行者123 更新时间:2023-12-03 04:38:47 25 4
gpt4 key购买 nike

在我的 Azure Web 服务中,我有调用 SQL Azure 中的存储过程的代码。有时会发生这样的情况:存储过程完成,但连接随后中断,调用者得到 SqlException声称Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

然后调用者将重新打开连接并尝试重新运行相同的代码。问题在于,代码首先检查数据库表是否存储“正确的状态”,并且由于上述存储过程已经运行,数据库状态已更改,因此检查失败并引发异常。

所以问题是调用代码依赖于“无异常”等于“数据库更改正常”的条件,因此如果出现异常,则数据库没有更改。在这种情况下,异常是因为数据库发生更改后出现临时连接问题,因此假设结果是错误的。

解决此类情况的典型方法是什么?

最佳答案

使用 DTC 和远程事务,那么至少你可以正确处理这个问题。您必须将其从“本地”事务提升为“分布式”事务。这本身就有问题,但几乎没有其他方法可以正确地做到这一点。

或者,您可以重新编程,以便在代码中正确处理这种情况。

关于c# - 当数据库中的事务完成但连接问题导致异常时,如何解决这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13798098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com