IIS 8 (Windows 2012) でドメイン ユーザー アカウントをアプリケーション プール ID として設定しようとしています。IIS 管理コンソールを使用してこれを実行しようとすると、常にエラーが発生します。
値が予想範囲内にありません。
appcmd.exe を使用して ID を設定しようとすると、ユーザー名とパスワードを設定するコマンドとパスワードのみを設定するコマンドの両方で失敗します。ユーザー名の設定は問題ありません。
ユーザー名とパスワードの両方を設定しようとしています [失敗]:
>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 グループに追加し、「サービスとしてログオン」できるようにしました。
私が間違っている点について何かアドバイスはありますか?
答え1
に従ってAD なしでネットワーク共有にアクセスできるように IIS Web アプリを設定するにはどうすればよいですか?
私も同じ問題を抱えていましたが、パスワードをクリアテキストで入力することができなかったので、もう少し調べてみたところ、次の記事を見つけました。 カスタム IIS アプリケーション プール ID: 値が想定範囲内にありません
診断するための重要なステップは、適切なイベントを確認することです。
これを解決する方法を見つけるために、イベント ビューアーにアクセスしました。アプリケーション ログには何もなかったので、アプリケーションとサービス ログ => Microsoft => Windows => IIS 構成に移動しました。ここのログは既定で無効になっているため、有効にする必要があります。(これを行うには、ログを右クリックし、[ログの有効化] を選択します。) 有効にしたら、ID の設定を再度実行し、ビューを更新します (アクション ウィンドウまたは F5)。すると、エラーに関する詳細情報が表示されます。結果には 2 つのエラー (イベント 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>
セクションを古いものに置き換える(inc:\windows\System32\inetsrv\config\applicationHost.config
)
その後、アプリケーション プールにカスタム ID を再度設定できます。
答え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"
3 番目に、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:apphost