我试图在IIS8(Windows2012)中将域用户帐户设置为ApplicationPool标识。在使用IIS管理控制台尝试此操作时,总是会出现以下错误:
值不属于预期范围。
当尝试使用appcmd.exe设置标识时,它在设置用户名和密码的命令或仅设置密码的命令上都失败。设置用户名没有问题。
尝试同时设置用户名和密码失败:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )尝试只设置用户名成功:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.userName:DOMAIN\Username
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"成功设置用户名失败后,尝试设置密码:
>appcmd set config /section:applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd
Applied configuration changes to section "system.applicationHost/applicationPools" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
ERROR ( hresult:80070057, message:Failed to commit configuration changes. The parameter is incorrect. )我将域用户添加到IIS_IUSRS组中,并允许它“以服务登录”。
有什么建议我可能做错了吗?
发布于 2015-03-30 13:35:11
我也有同样的问题,但不能让密码在明文中,所以我再深入一点,找到了本文:自定义IIS标识:值不属于预期范围
诊断的关键步骤是查看正确的事件:
为了弄清楚如何解决这个问题,我进入了事件查看器。应用程序日志中没有任何内容,因此我转到应用程序和服务日志( => Microsoft => => IIS-Configuration )。这里的日志默认是禁用的,因此必须启用它们。(为此,右键单击日志,然后选择Enable。)一旦启用,重新运行设置标识的尝试,并刷新视图(操作窗格或F5)和瞧!,现在我们有了关于错误的更多信息。结果是两个错误(事件ID 42和43)。
我遇到了与文章中相同的事件错误:
ID 42:未能在'\?\C:\windows\system32\inetsrv\config\applicationHost.config'.中初始化“IISWASOnlyAesProvider”加密提供程序请检查您的配置。ID 43:未能加密属性'Microsoft.ApplicationHost.AesProtectedConfigurationProvider'.
然后我做了以下几件事:
c:\windows\System32\inetsrv\config )<configProtectedData><providers>部分替换为旧部分(在c:\windows\System32\inetsrv\config\applicationHost.config中)然后,我可以再次为应用程序池设置自定义标识。
发布于 2017-06-19 21:01:27
您可以从另一台服务器获取私钥并将其导入到此服务器,方法是首先从另一个运行正常的IIS服务器导出密钥: C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -px "iisWasKey“"C:\temp\AESKeys.xml”-pri。
其次,您可以在故障机器上还原该密钥(将密钥复制到另一台服务器,并将其放在相同的位置):C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -pi "iisWasKey“"C:\temp\AESKeys.xml”
第三,编辑c:\windows\system32\inetsrv\applicationhost.config并使用已知工作服务器中的configprotecteddata部分来代替该文件中已经存在的部分。
它看起来就像这一节:
如果一切顺利,那么您可以通过创建一个应用程序池来测试它,然后转到高级设置,并以域\ user或它需要的其他用户的身份运行它。
托尼·特鲁斯
发布于 2013-09-06 13:17:07
检查在此应用程序池上配置的应用程序的绑定,如果它们有任何不正确的绑定,例如。无效字符、空格等。
来源
https://serverfault.com/questions/536882
复制相似问题