加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.net – C#线程和Sql连接

发布时间:2020-12-16 01:35:20 所属栏目:百科 来源:网络整理
导读:我有一个方法尝试更新ASP.NET应用程序中的SQL Server数据库.如果更新失败,它将捕获异常,然后在MSMQ中对更新进行排队,然后旋转一个新线程,该线程稍后将对挂起的更新进行排队,然后重试.线程启动时,无法打开数据库连接,因为它尝试使用网络服务作为登录进行连接.
我有一个方法尝试更新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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读