IIS가 하위 디렉터리에 설정을 적용하지 못하도록 방지

IIS가 하위 디렉터리에 설정을 적용하지 못하도록 방지

나는기본응용 프로그램 루트에 대한 문서이지만 하위 디렉터리에 대한 문서는 아니어야 합니다. 나는 "디렉터리 검색" 기능을 사용하고 있지만 하위 디렉터리에서만 작동하길 원합니다.

여기 내 web.config의 일부가 있습니다:

    <system.webServer>
    <defaultDocument enabled="true">
        <files>
            <clear />
            <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt" />
        </files>
    </defaultDocument>
    <directoryBrowse enabled="true" />

신청해보았습니다InChildApplications 상속defaultDocument 요소에 추가했지만 작동하지 않고 실제로 응용 프로그램이 실패하게 됩니다. 그래서 defaultDocument는 루트에만 적용하고, 모든 하위 디렉터리에는 DirectoryBrowse를 적용하고 싶습니다.

각 하위 디렉터리에 web.config 파일이 있을 수 있고 defaultDocument에 일반 파일을 적용할 수 있다는 것을 알고 있지만 해당 디렉터리에 web.config 파일을 넣을 수는 없습니다(이 앱의 특성상 이를 허용하지 않습니다). (또한,allowedSubDirConfig여기서는 작동하지 않습니다.처리하위 디렉터리에 web.config 파일이 있습니다.)

해당 노드에 설정을 적용할 web.config 구성이 있습니까?오직?

답변1

해결책은 다음과 같습니다. 위치 태그:

위치 태그는 해당 가상 경로에 매핑된 폴더에 web.config 파일을 두는 대신 경로별 구성을 지정하는 데 사용됩니다. 경로의 위치 태그는 구성 계층 구조의 상위 수준에 설정되며 해당 상위 수준에 있는 것으로 간주됩니다.

위 링크의 예시를 참고하세요.

답변2

harrymc의 답변을 바탕으로 다음 구성이 작동하도록 할 수 있었습니다.

<location path="." inheritInChildApplications="false">
    <system.webServer>
        <defaultDocument enabled="true">
            <files>
                <clear />
                <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt" />
            </files>
        </defaultDocument>
    </system.webServer>
</location>
<system.webServer>
    <!--<defaultDocument enabled="true">
        <files>
            <clear />
            <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt" />
        </files>
    </defaultDocument>-->
    <directoryBrowse enabled="true" />
...

사용법InChildApplications 상속의 속성위치요소도 필요합니다. 원래 "defaultDocument" 요소를 그대로 두었지만 원래 시도에 대한 자리 표시자로 주석 처리했습니다.

관련 정보