gpt4 book ai didi

c# - 我可以指望 ASMX Web 服务应用程序中的线程关联吗?

转载 作者:太空宇宙 更新时间:2023-11-03 21:48:22 24 4
gpt4 key购买 nike

我有一个“企业”项目,它有很多很多层。 WinForms 客户端连接到 Web 服务,该服务调用业务层,业务层从另一个系统调用转换层,后者又调用多个包装器以最终更新值。不是开玩笑 - 这就是 12 年持续发展的结果。

我现在必须将一个 ID 从客户端一直传递到数据库层。 ID 必须随每个请求一起旅行。我最初的想法是一直探索它,但这将非常耗时而且几乎不可能(几乎一直存在大量的静态疯狂)。

所以我正在考虑将此 ID 分配给 ASP.NET Web 服务应用程序的 Application_BeginRequest 中的 ThreadLocalStorage。然后最后一个与数据库对话的库可以读取这个值并将其传递给数据库。

我的问题是:我可以计算从 Application_BeginRequest 一直到链中最后一个库的线程关联吗?

最佳答案

你最好使用 HttpContext.Items .

如果您决定使用异步页面,HttpContext(包括 Items)将正确地移动到新线程,但正常的 TLS 不会。

请注意,如果您不依赖 ASP.Net 线程管理(即创建自己的线程/使用线程池/或任何类似 .ParallelFor 的方法),则需要确保将上下文传递给新线程正确(即在新线程的操作早期分配 HttpContex.Current)。如果您希望多个线程同时处理单个请求,我建议您不要使用 HttpContext.Items

关于c# - 我可以指望 ASMX Web 服务应用程序中的线程关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753598/

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