2010-02-24 89 views
15

當我試圖設置在高級設置物理路徑的憑據,我如下得到一個錯誤信息:IIS管理器壞數據。 0x80090005

Internet信息服務(IIS)管理器

錯誤的數據。 (異常來自HRESULT:0x80090005)

而且它阻止我設置特定的用戶訪問網絡共享文件夾。

奇怪的是,我有另一臺服務器具有相同的配置,它工作正常,但這個提出了錯誤。任何想法?

+0

我一直有同樣的問題,當我嘗試添加一個新的VDIR指向一個網絡共享位置。令人沮喪! – Praveen 2010-06-21 14:56:48

+0

我最終刪除了IIS Web服務器(7)角色並重新安裝。第二次工作。 – Praveen 2010-07-07 21:15:23

回答

10

如果通過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 再次合作!

+0

您可能希望在導入密鑰時指定-exp,否則將無法再導出它。 – Brain2000 2017-04-24 16:54:44

5

當加密密鑰配置錯誤時(通常是因爲ApplicationHost.config是從其他計算機復​​制的(不導入加密密鑰)或加密密鑰被覆蓋不正確),我看到了這個問題。

您得到該錯誤的原因是因爲無論何時存儲密碼(例如虛擬目錄用戶/密碼),它都使用加密進行存儲,並導致其失敗。

0

感謝Mathieu Chateau的一個很好的回答,我發現applicationHost.config文件可以手動編輯,以避免需要導出和導入用於編碼的機器密鑰。我只是手動設置所有的應用程序池標識爲默認應用程序池的身份,像這樣:

<add name="local.com"> 
    <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="false" /> 
</add> 

我刷新在IIS管理器用戶界面的應用程序池的列表,一切似乎都工作得很好,包括能力編輯另一個身份的應用程序池設置。我希望對屬性的任何其他更改也能正常工作。

0

簡單修復方法: 如果您使用IIS的共享配置,請爲共享applicationHost文件的網絡位置重新添加用戶憑據。這將從配置文件中刪除以前加密的憑據並將其替換爲更新的憑證。

您也可以從applicationHost文件中手動刪除加密領域,e.g:

 <add name="site.com" autoStart="true" enable32BitAppOnWin64="true" managedRuntimeVersion="v4.0" startMode="AlwaysRunning"> 
      <processModel identityType="SpecificUser" userName=".\username" password="[enc:IISWASOnlyAesProvider:IIasdfasd225223xxx:enc]" /> 
     </add>