IIS 8에서 도메인 사용자의 비밀번호를 ApplicationPool ID로 설정할 수 없습니다.

IIS 8에서 도메인 사용자의 비밀번호를 ApplicationPool ID로 설정할 수 없습니다.

IIS 8(Windows 2012)에서 도메인 사용자 계정을 ApplicationPool 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. )

사용자 이름만 설정하려고 합니다 [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"

사용자 이름을 성공적으로 설정한 후 비밀번호 설정을 시도하는 중 [실패]:

>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 웹 앱을 어떻게 설정합니까?

나는 같은 문제가 있었지만 암호를 일반 텍스트로 보낼 수 없었기 때문에 좀 더 자세히 조사하여 다음 기사를 찾았습니다. 사용자 지정 IIS 앱 풀 ID: 값이 예상 범위에 속하지 않습니다.

진단의 핵심 단계는 올바른 이벤트를 살펴보는 것입니다.

이 문제를 해결하는 방법을 알아보기 위해 이벤트 뷰어로 들어갔습니다. 응용 프로그램 로그에는 아무것도 없었으므로 응용 프로그램 및 서비스 로그 => Microsoft => Windows => IIS 구성으로 이동했습니다. 여기의 로그인은 기본적으로 비활성화되어 있으므로 활성화해야 합니다. (그렇게 하려면 로그를 마우스 오른쪽 버튼으로 클릭하고 로그 활성화를 선택합니다.) 활성화되면 ID 설정 시도를 다시 실행하고 보기(작업 창 또는 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)

그런 다음 다시 애플리케이션 풀에 대한 사용자 지정 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"

세 번째로 c:\windows\system32\inetsrv\applicationhost.config를 편집하고 알려진 작업 서버의 configprotecteddata 섹션을 사용하여 이 파일에 이미 있는 섹션 대신 사용합니다.

다음 섹션과 같습니다.

모든 것이 순조롭게 진행되면 응용 프로그램 풀을 생성하여 테스트한 다음 고급 설정으로 이동하여 DOMAIN\user 또는 필요한 다른 사용자로 실행할 수 있습니다.

토니 트러스

답변3

이 응용 프로그램 풀에 구성된 응용 프로그램에 대한 바인딩을 확인하십시오(예: 잘못된 바인딩이 있는 경우). 잘못된 문자, 공백 등.

원천

답변4

/section:applicationPools끝에 변경 /section:system.applicationHost/applicationPools하고 추가해 보세요 /commit:apphost.

appcmd set config /section:system.applicationHost/applicationPools /[name='AppPoolName'].processModel.identityType:SpecificUser /[name='AppPoolName'].processModel.password:P4ssW0rd /commit:apphost

관련 정보