無法在 IIS 8 中將網域使用者的密碼設定為應用程式集區標識

無法在 IIS 8 中將網域使用者的密碼設定為應用程式集區標識

我正在嘗試將網域使用者帳戶設定為 IIS 8 (Windows 2012) 中的應用程式集區識別碼。當使用 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. )

嘗試僅設定使用者名稱 [SUCCESS]:

>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"

成功設定使用者名稱後嘗試設定密碼[FAIL]:

>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 群組並允許其「作為服務登入」。

有什麼建議我可能做錯了什麼嗎?

答案1

按照如何設定 IIS Web 應用程序,使其無需 AD 即可存取網路共用?

我遇到了同樣的問題,但無法以明文形式輸入密碼,所以我進一步挖掘並找到了這篇文章: 自訂 IIS 應用程式集區識別:值不在預期範圍內

診斷的關鍵步驟是查看正確的事件:

為了弄清楚如何解決這個問題,我進入了事件檢視器。應用程式日誌中沒有任何內容,因此我轉到“應用程式和服務日誌”=>“Microsoft”=>“Windows”=>“IIS 配置”。這裡的日誌預設是禁用的,所以必須啟用它們。 (為此,請右鍵單擊日誌,然後選擇啟用日誌。)啟用後,重新運行設定身份的嘗試,並刷新視圖(操作窗格或 F5),瞧!結果中有兩個錯誤(事件 ID 42 和 43)。

我遇到了與文章中相同的事件錯誤:

ID 42:無法初始化「\?\C:\windows\system32\inetsrv\config\applicationHost.config」中的「IISWASOnlyAesProvider」加密提供者。請檢查您的配置。

ID 43:無法加密屬性「Microsoft.ApplicationHost.AesProtectedConfigurationProvider」。

然後我做了以下事情:

  • 還原舊版的 ConfigEncKey.key 檔案(至c:\windows\System32\inetsrv\config
  • <configProtectedData><providers>用舊的部分替換該部分(在c:\windows\System32\inetsrv\config\applicationHost.config

然後我可以再次為應用程式集區設定自訂標識。

答案2

您可以從另一台伺服器取得私鑰,然後透過先從另一台可用的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 部分來取代此檔案中已有的部分。

它看起來像這個部分:

如果一切順利,您可以透過建立應用程式集區來測試它,然後前往進階設定並以 DOMAIN\user 或其他需要的使用者身分執行它。

托尼·特拉斯

答案3

檢查此應用程式集區上配置的應用程式的綁定,如果它們有任何不正確的綁定,例如。無效字元、空格等。

來源

答案4

嘗試更改/section:applicationPools/section:system.applicationHost/applicationPools並添加/commit:apphost到末尾

appcmd 設定配置 /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphostrd /commit:apphost

相關內容