gpt4 book ai didi

c# - 当 IIS 应用程序池身份用户区域设置设置为 ApplicationPoolIdentity 时,如何设置它

转载 作者:可可西里 更新时间:2023-11-01 07:46:40 28 4
gpt4 key购买 nike

澄清标题。

当您在 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。 DAT 然后将其与 HKEY_USERS\UnqiueId\ControlPanel\International\Locale settings 中的设置匹配。

除非您需要设置,否则设置 setProfileEnvironment="false" 可能会更简单。

关于c# - 当 IIS 应用程序池身份用户区域设置设置为 ApplicationPoolIdentity 时,如何设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com