2010-05-19 10 views
9

Cuando nos fijamos el CurrentCulture y/o CurrentUICulture hacemos esto en el hilo actual así:¿Afeccionamos múltiples usuarios en ASP.NET cuando configuramos Thread CurrentCulture/CurentUICulture?

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-GB");

Doest Significa esto que podría afectar a la configuración de la cultura de varios usuarios de nuestra aplicación web como sus peticiones pueden reutilizar los hilos del grupo?

Estoy trabajando en una aplicación ASP.NET MVC donde cada usuario puede tener una configuración de cultura propia especificada en los datos de su cuenta. Cuando el usuario inicia sesión, la configuración cultural se recupera de la base de datos y debe establecerse como cultura actual.

Mi preocupación es que el establecimiento de la cultura actual en el hilo actual puede afectar a la solicitud de otro usuario reutilizando este hilo. Estoy aún más preocupada al leer esto:

ASP.NET not only uses a thread pool, but may switch threads during request processing.

Respuesta

5

Rocky Lhotka hace varios años blogged about this very question - e informó que Scott Guthrie le dijo esto:

ASP.NET garantiza que, incluso si ey cambie su hilo, CurrentPrincipal y culture propiedades del original llevar al nuevo hilo. Este es automático, y no es necesario que se preocupe por perder esos valores. ¡Uf!

Sin embargo, el almacenamiento local de subprocesos no se lleva adelante.

El artículo contiene el material más interesante (que describe las circunstancias en las que se ASP.NET hilos de conmutación - por lo menos a partir de 2006), y es sin duda vale la pena leer. Desafortunadamente, Rocky no proporciona un enlace a una fuente autorizada. El reflector tampoco es de mucha ayuda, ya que todos los métodos relevantes terminan en llamadas nativas.

Habiendo dicho eso, tiene sentido: la API implica que la cultura actual se transmite a través de los cambios de contexto, como el principal actual, y nunca he visto que ASP.NET contradiga el comportamiento esperado.

+0

Gracias por el enlace a esta entrada de blog. Es realmente interesante y borra la segunda parte de mis preocupaciones: la conmutación de subprocesos ocurre durante una única solicitud solo cuando se debe realizar una operación de asincronización, por lo que al menos esto no es aleatorio y, a medida que la cultura avanza, debería cambiarse. no ser un problema Lo que queda es el remanente de subprocesos del grupo cuando llega una nueva solicitud, pero si tenemos en cuenta que establecemos la cultura para cada solicitud en OnActionExecuting, probablemente esto no sea un problema. – Nikolay

0

En ASP.NET estándar que utiliza la página de campos UICulture y Cultura. Los contextos del hilo se cambian a medida que se ejecutan diferentes partes de la solicitud en el hilo.

Al decir que no estoy familiarizado con la forma en que MVC lo gestiona, pero creo que debería aplicarse en la vista, y dado que las vistas son páginas que heredan de la página, tendrán UICulture y Culture según la norma ASP.NET ...

al decir todo eso, no tome esto como evangelio, como digo, no he hecho mucho con ASP MVC ...

Cuestiones relacionadas