appcmd를 통해 IIS에서 실제 경로 변경이 활성화되지 않았습니다 설정을 검사하면 경로가 올바른 것처럼

IIS 7.5에서는 다음과 같이 구성된 간단한 배포 시스템이 있습니다.

세 개의 폴더로 구성된 새 웹 루트의 zip 파일을 만듭니다.

Api
Site
Manager

새 폴더에 압축이 풀리고 ( “SITE_REV1″이라고 함) 다음을 호출하는 스크립트가 포함되어 있습니다 (각 웹 루트마다 하나씩).

C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"

이것은 보통 9/10 번 작동합니다. 경우에 따라 웹 루트가 올바르게 업데이트 된 것 같습니다 (IIS 관리자에서 기본 설정을 검사하면 경로가 올바른 것처럼 보입니다). 문제가되는 사이트는 실제로 이전 위치를 가리 킵니다. “수정”할 수있는 유일한 방법은 IIS- 재설정을 실행하는 것입니다. 문제의 응용 프로그램 풀을 재활용하는 것만으로는 충분하지 않습니다.

때로는 재부팅해야 할 필요가있는 것처럼 보이지만 100 % 정확하지는 않습니다 (항상 문제를 해결 한 것은 아닙니다).

appcmd에 결함이 있기를 희망하면서 Powershell과 웹 관리 모듈을 사용하여 스크립트를 다시 작성했지만 동일한 문제가 발생합니다.

Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"

누구든지 이런 경험을 했습니까? 누구나 무슨 일이 일어나고 있는지, 그리고이 문제를 방지하기 위해 무엇을 할 수 있습니까? IIS 재설정을 수행하는 것은 실제로 우리에게 좋은 옵션이 아닙니다. 단일 사이트에서 변경 사항을 배포하려고 할 때마다 서버의 모든 사이트에 영향을 미치기 때문입니다.

편집 : IIS 관리자의 사이트 시작 / 중지 (응용 프로그램 풀이 아님)가 잘못된 물리적 경로를 해결하지만 appcmd를 사용하여 사이트를 중지하고 물리적 경로를 변경 한 다음 시작하면 여전히 고통을 겪고 있습니다. 같은 문제. 난 빈칸에있어



답변

IIS 관리자에서 실제 경로를 변경하면 즉시 올바르게 작동합니까?

다음 명령을 시도 할 수 있습니다. 구문이 다르면 결과는 같아야하지만 내부적으로 약간 다르게 작동하여 IIS가 변경 사항을 선택하도록합니다 (더 나은).

C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"


답변

사이트 당 앱 풀 재활용이 충분해야합니다. 이들은 독립적 인 프로세스입니다. 너무 자주 기사와 프로세스가 iisreset 사용을 홍보합니다. 한 사이트의 앱 풀을 중지 / 시작하는 것이 옵션입니까? 이것이 단일 서버 솔루션입니까? 사이트의 다운 타임을 최소화하려고합니까? 구성 변경시 재활용을 비활성화하는 옵션이 있습니다. 그런 다음 수동으로 재활용 할 수 있습니다. 문제가 발생하면 applicationHost.config에 무엇입니까?