IIS 7.5 (Express) applicationhost.config : virtualDirectory의 physicalPath가 상대 경로 일 수 있습니까?


9

applicationhost.configIIS 7.5 Express 용 사이트를 구성하고 있습니다 .

<site name="default" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_BIN%\..\Somewhere\Else" />
                                            <!-- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -->
    </application>
    ...
</site>

표시된대로 상대 경로를 지정하면 작동하지 않는 것으로 보이며 HTTP로 이어질 것 500.19 Internal Server Error입니다. IIS는 오류 코드를보고합니다.이 코드 0x8007007b는 일부 인터넷 검색 후 잘못된 파일 경로 구문을 나타내는 것으로 보입니다.

내 사이트의 루트에 상대적인 실제 경로를 사용할 수 있도록이 오류를 해결할 방법이 있습니까?

답변:


6

불행하게도. 그것은 완전한 물리적 경로 여야합니다. 사이트 경로를 자주 변경하지 않는 한 정적 경로는 문제가되지 않습니다. 경로를 다른 사이트 인스턴스로 자주 변경하는 경우 appcmd를 사용하여 변경 내용을 스크립팅하여 모든 하위 폴더를 가져 오는 것을 고려할 수 있습니다.


1
Vdir이 소스 제어로 체크인 될 수있는 구성 파일에 상대적 일 수있는 경우 분기 할 때 예를 들어 dev에 좋을 것입니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
PilotBob

3
불행히도 현재 버전의 IIS에서는 상대 경로가 지원되지 않으므로 가장 깨끗한 솔루션은 각 컴퓨터에서 동일한 경로를 사용하는 것입니다. 다른 머신에서 다른 경로를 가져야하는 경우 (나는 dev 머신이라고 가정) 환경 변수를 사용해 볼 수 있습니다. IIS에서 사용할 수 있도록 시스템 환경 변수를 작성하고 개별 시스템의 경로 루트에 사용하십시오.
Scott Forsyth-MVP

2
예를 들어 일부 환경 변수가 지원되는 것 같습니다 <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />.
Uwe Keim

@UweKeim 당신이 맞습니다, 이것은 현재 IIS 버전에서 작동합니다. IIS 10은 이제 physicalPath에서 변수를 지원합니다. % IIS_SITES_HOME %은 IIS Express 용입니다. 이 변수는 정식 버전의 IIS에는 존재하지 않습니다. 그러나 다른 시스템 변수는 작동합니다.
Scott Forsyth-MVP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.