当我尝试在高级设置中设置物理路径凭据时,我收到如下错误消息:
Internet信息服务(IIS)管理器
糟糕的数据。 (来自HRESULT的异常:0x80090005)
它阻止我设置特定用户访问网络共享文件夹。
奇怪的是,我有另一台具有相同配置的服务器,它工作正常但是这个引发了错误。有什么想法吗?
答案 0 :(得分:9)
如果您复制了applicationhost.config,则还需要导出和导入通过WAS加密的帐户。
我做了什么(取自here):
导出:
aspnet_regiis -px "iisConfigurationKey" "D:\iisConfigurationKey.xml" -pri
aspnet_regiis -px "iisWasKey" "D:\iisWasKey.xml" -pri
导入:
aspnet_regiis -pi "iisConfigurationKey" "D:\iisConfigurationKey.xml"
aspnet_regiis -pi "iisWasKey" "D:\iisWasKey.xml"
然后再次复制applicationhost.config 再次工作!
答案 1 :(得分:5)
我在加密密钥配置错误时看到了这个问题,通常是因为从不同的计算机复制了ApplicationHost.config(没有导入加密密钥),或加密密钥被错误覆盖。
您收到该错误的原因是因为无论何时存储密码(例如虚拟目录user / pwd),都会使用加密存储密码并导致密码失败。
答案 2 :(得分:0)
感谢Mathieu Chateau的一个很好的答案,我发现可以手动编辑applicationHost.config文件,以避免导出和导入用于编码的机器密钥。我只是手动将所有应用程序池标识设置为默认的应用程序池标识,如下所示:
<add name="local.com">
<processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" />
</add>
我刷新了IIS管理器UI中的应用程序池列表,所有内容似乎都运行正常,包括编辑其他标识的应用程序池设置的功能。我希望对属性的任何其他更改都可以正常工作。
答案 3 :(得分:0)
对我来说简单的修复: 如果您使用IIS的共享配置,请重新添加共享applicationHost文件的网络位置的用户凭据。这将从配置文件中删除以前加密的凭据,并将其替换为更新的凭证。
您也可以手动从applicationHost文件中删除加密字段,例如:
<add name="site.com" autoStart="true" enable32BitAppOnWin64="true" managedRuntimeVersion="v4.0" startMode="AlwaysRunning">
<processModel identityType="SpecificUser" userName=".\username" password="[enc:IISWASOnlyAesProvider:IIasdfasd225223xxx:enc]" />
</add>