Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 设置线程CurrentCulture/CurentUICulture时是否会影响ASP.NET中的多个用户?_Asp.net Mvc_Localization_Globalization - Fatal编程技术网

Asp.net mvc 设置线程CurrentCulture/CurentUICulture时是否会影响ASP.NET中的多个用户?

Asp.net mvc 设置线程CurrentCulture/CurentUICulture时是否会影响ASP.NET中的多个用户?,asp.net-mvc,localization,globalization,Asp.net Mvc,Localization,Globalization,当我们设置CurrentCulture和/或CurrentUICulture时,我们在当前线程上执行以下操作: Thread.CurrentThread.CurrentCulture=新的CultureInfo(“en GB”) Thread.CurrentThread.CurrentUICulture=新的文化信息(“en GB”); 这是否意味着我们可能会影响web应用程序的多个用户的区域性设置,因为他们的请求可能会重用池中的线程 我正在开发一个ASP.NET MVC应用程序,其中每个用

当我们设置CurrentCulture和/或CurrentUICulture时,我们在当前线程上执行以下操作:


Thread.CurrentThread.CurrentCulture=新的CultureInfo(“en GB”)
Thread.CurrentThread.CurrentUICulture=新的文化信息(“en GB”);

这是否意味着我们可能会影响web应用程序的多个用户的区域性设置,因为他们的请求可能会重用池中的线程

我正在开发一个ASP.NET MVC应用程序,其中每个用户都可以在其帐户数据中指定自己的区域性设置。用户登录时,将从数据库中检索区域性设置,并且必须将其设置为当前区域性

我担心的是,在当前线程上设置当前区域性可能会影响其他用户请求重用此线程。我更关心的是读到这篇文章:


ASP.NET不仅使用线程池,而且可以在请求处理期间切换线程。

在标准ASP.NET中,我使用了页面字段UICulture和Culture。然后,当请求的不同部分在线程上执行时,线程上下文会发生变化

我不熟悉MVC是如何管理它的,但我认为它应该应用于视图中,并且鉴于视图是从页面继承的viewpages,它们将具有UICulture和符合ASP.NET标准的区域性

说这些,不要把这当作福音,正如我所说的,我在ASP MVC方面做得不多…

几年前,洛基·洛基·洛特卡(Rocky Lhotka)——并报道斯科特·古思里(Scott Guthrie)告诉他:

ASP.NET确保了这一点,即使 切换你的线程,这个 当代校长与文化 来自原始线程的属性 结转到新线程。这 是自动的,你不需要 担心失去这些价值。唷

但是,线程本地存储不会结转

这篇文章包含了更多有趣的内容(他概述了ASP.NET将切换线程的情况——至少在2006年),这篇文章绝对值得一读。不幸的是,Rocky没有提供到权威来源的链接。Reflector在这里也没有多大帮助,因为所有相关的方法都以本机调用终止


话虽如此,这是有道理的:API强烈暗示当前的文化是通过上下文切换进行的,就像当前的主体一样,我从未见过ASP.NET与预期的行为相矛盾。

感谢您链接到这篇博文。这真的是一个有趣的问题,并且消除了我的第二部分担忧——线程切换只在一个请求中发生,只有在必须执行异步操作时才会发生,所以至少这不是随机的,随着文化的发展,这应该不是一个问题。剩下的是当一个新的请求到达时从池中恢复线程,但是如果我们考虑在OnActudio执行中为每个请求设置了文化,那么这也不是问题。