Here's一个SetCulture属性的例子,里面的内容是这样的:
public void OnActionExecuting(ActionExecutingContext
filterContext)
{
string cultureCode = SetCurrentLanguage(filterContext);
if (string.IsNullOrEmpty(cultureCode)) return;
HttpContext.Current.Response.Cookies.Add(
new HttpCookie("Culture", cultureCode)
{
HttpOnly = true,
Expires = DateTime.Now.AddYears(100)
}
);
filterContext.HttpContext.Session["Culture"] = cultureCode;
CultureInfo culture = new CultureInfo(cultureCode);
System.Threading.Thread.CurrentThread.CurrentCulture =
culture;
System.Threading.Thread.CurrentThread.CurrentUICulture =
culture;
}
我想知道这对多个用户登录的网站有何影响,每个用户都设置了自己的文化?关于运行该站点的IIS工作进程(w3wp),此处线程的范围是什么?
答案 0 :(得分:5)
它与普通的Asp.Net完全相同。该线程从头到尾用于此请求,然后被有效地抛弃(如果你想迂腐,底层平台线程会坚持一段时间)。
因此,多个用户不会受到影响 - 因为每个用户都有自己的并发线程 - 我在一些网站上做了完全相同的事情(包括一个经常受到数万个独立访问者攻击的网站几个小时),它总是很好。
答案 1 :(得分:0)
我根据以下文章对接受的答案提出异议。改变当前线程的文化假设线程和请求之间存在类似的生命周期,这似乎并非如此,至少不适用于所有场景。所以你可能会或者可能没有问题。请查看以下文章。
asp.net mvc3 request thread affinity
http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx