- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
澄清标题。
当您在 IIS 中创建应用程序池时,您需要为其命名。然后,您可以将标识设置为 ApplicationPoolIdentiy。
然后 Windows 会创建这个您看不到的魔法用户。假设应用程序池名称是 MyTestAppPool,那么您最终会得到一个名为 MyTestAppPool (IIS AppPool\MyTestAppPool) 的用户
发生这种情况时,Windows 会使用服务器的当前区域设置。假设当时是美国。
然后您将其更改为 UK。虽然有一个副本,但这不会复制到我发现的这些魔术用户。因此,您的服务器设置为英国,而您的 MyTestAppPool 设置为美国。
因此,当网站运行时,您需要在正确的语言环境中将某些内容格式化为货币,由于 AppPool 而不是英国货币,您最终会使用美国货币。
有没有办法更改 AppPool 用户的语言环境?
我找到的唯一方法是删除应用程序池,然后在将服务器区域设置设置为所需内容后重新创建它。如果我不想那样做怎么办。
如果我需要让多个网站在不同的语言环境中运行,我该如何为每个网站设置 AppPoolIdentity 用户语言环境,而无需在创建应用程序池之前将服务器更改为我想要的?
最佳答案
当您创建和使用 App Pool Identity 时,会创建一个“用户”,并且在 C:\Users\AppPoolName
中有一个文件夹。
在 C:\Windows\System32\inetsrv\config\applicationHost.config
中有一个在我的机器上看起来像这样的元素:
<applicationPoolDefaults managedRuntimeVersion="v4.0">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
</applicationPoolDefaults>
这两个设置的组合决定了应用程序池标识运行的环境(以及区域设置)设置。
您应该能够通过检查加载 ..\Users\AppPoolName\NTUSER 的用户的
然后将其与 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
来找出唯一 ID。 DATHKEY_USERS\UnqiueId\ControlPanel\International\Locale
settings 中的设置匹配。
除非您需要设置,否则设置 setProfileEnvironment="false"
可能会更简单。
关于c# - 当 IIS 应用程序池身份用户区域设置设置为 ApplicationPoolIdentity 时,如何设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131443/
我是一名优秀的程序员,十分优秀!