【发布时间】:2015-05-21 18:59:27
【问题描述】:
澄清标题。
当您在 IIS 中创建应用程序池时,您需要为其命名。然后,您可以将身份设置为 ApplicationPoolIdentiy。
Windows 然后创建这个你看不到的神奇用户。假设应用程序池名称为 MyTestAppPool,因此您最终会得到一个名为 MyTestAppPool (IIS AppPool\MyTestAppPool) 的用户
当这种情况发生时,Windows 使用服务器的当前区域设置。假设当时是美国。
然后您将其更改为英国。虽然有一个副本,但它不会复制给我发现的这些神奇用户。因此,您的服务器设置为英国,而您的 MyTestAppPool 设置为美国。
因此,当网站运行并且您需要在正确的语言环境中将某些内容格式化为货币时,由于 AppPool 而不是英国货币,您最终会使用美国货币。
有没有办法更改 AppPool 用户的区域设置?
我发现的唯一方法是删除应用程序池并在将服务器区域设置设置为所需内容后重新创建它。如果我不想那样做怎么办。
如果我需要在不同的语言环境中运行多个网站,我该如何将 AppPoolIdentity 用户语言环境设置为其中的每一个,而不必在创建应用程序池之前将服务器更改为我想要的?
【问题讨论】:
-
你不能用 HKEY_USERS\
\Control Panel\International 中的注册表来更改它,如stackoverflow.com/questions/1202515/… 中所述吗? -
1) 区域设置属于用户。当您说客户要求它使用系统的本地时,您是什么意思? 2) 在服务器上创建一些本地用户用于应用程序池标识有什么问题?
-
这并不能解决问题,但是,如果您在应用程序启动时设置 CurrentThread.Culture="en-GB" 并且对于每个请求,则本地化例程将在该语言环境中运行。