gpt4 book ai didi

.net - C# 线程和 SQL 连接

转载 作者:行者123 更新时间:2023-12-01 10:14:29 25 4
gpt4 key购买 nike

我有一个尝试更新 ASP.NET 应用程序中的 sql server 数据库的方法。如果更新失败,它会捕获异常,然后在 MSMQ 中对更新进行排队,然后启动一个新线程,该线程稍后会将挂起的更新从队列中取出并重试。当线程启动时,它无法打开数据库连接,因为它正在尝试使用网络服务作为登录名进行连接。 sql 连接正在使用 Windows 身份验证,并将在线程之外工作。如果我在新线程内执行的代码中放置一个断点并检查 Thread.CurrentPrincipal,它会显示 Identity 是正确的用户。为什么网络服务帐户试图打开 sql 连接?

如果有必要,我可以进一步说明。

谢谢。

最佳答案

我根据这个线程弄明白了: http://bytes.com/topic/asp-net/answers/597465-simple-thread-issue

我必须将它添加到线程代码块的顶部:

((WindowsIdentity)Thread.CurrentPrincipal.Identity).Impersonate();

关于.net - C# 线程和 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593190/

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