응용 프로그램과 가상 디렉터리의 차이점


11

나는 asp.net 개발자이며 IIS의 응용 프로그램과 가상 디렉토리는 항상 혼란 스럽습니다 .iis 6.0에서는 가상 디렉토리 만 만들 수있는 것 같습니다.


1
IIS6에서는 가상 디렉터리를 만든 다음 응용 프로그램으로 변환합니다.
Mark Henderson

답변:


13

이 두 가지는 혼동되기 쉽고 사람들은 종종 그 용어를 서로 바꿔서 사용합니다.

가상 디렉터리는 디스크의 다른 위치에 대한 포인터 일뿐입니다. 상위 폴더와 다른 디스크의 고정 경로를 가리 킵니다.

응용 프로그램은 다른 폴더 사이의 경계입니다. ASP.NET은이를 사용하여 새로운 AppDomain 루트 (또는 응용 프로그램 루트)를 만듭니다. 응용 프로그램 루트는 다른 global.asax, bin 폴더 및 다른 app_ [폴더]를 사용합니다.

IIS6 및 IIS7에서 가상 디렉터리를 만들면 기본적으로 응용 프로그램도 아닙니다. ASP.NET은 상위 폴더와 동일한 AppDomain에 저장합니다.

IIS6에서는 마우스 오른쪽 단추로-> 특성 및 작성을 눌러 가상 디렉토리 또는 일반 폴더를 애플리케이션으로 변환 할 수 있습니다.

IIS7에서는 옵션 이름이 다르지만 백그라운드에서 동일합니다. 가상 디렉터리를 만들면 여전히 부모의 AppDomain의 일부인 응용 프로그램이 아닌 vdir을 만들 수 있습니다.

"애플리케이션 추가"옵션은 실제로 가상 디렉토리를 작성하고이를 애플리케이션으로 표시합니다. (경로를 지정할 수 있음을 알 수 있습니다).

기존 폴더 (또는 vdir)를 마우스 오른쪽 버튼으로 클릭하고 응용 프로그램으로 변환을 수행 할 수도 있습니다. 기존의 일반 또는 가상 폴더에 응용 프로그램 경계를 만드는 방법입니다.


IIS 7의 기본 웹 사이트가 MOSS 2007 (SharePoint)을 실행 중입니다. 사용자가 여전히 포털에 있다고 느끼기를 원하기 때문에 비슷한 브랜드의 ASP.NET 웹 응용 프로그램을 만들고 동일한 사이트에서 가상 디렉터리 기반 응용 프로그램으로 설정했습니다. 기본 웹 사이트와이 ASP.NET 응용 프로그램 모두 동일한 응용 프로그램 풀을 사용하고 있습니다. 우선,이 안전하고 좋은 습관입니까? 둘째, ASP.NET 응용 프로그램에서 세션을 활성화하고 사용하면 SharePoint 관리 세션의 무결성 / 성능이 다른 방식으로 SharePoint에 영향을 줄 수 있습니까?
웹 사용자

@WebUser 동일한 응용 프로그램 풀에 두는 것이 좋으며 응용 프로그램 풀의 별도 응용 프로그램이므로 세션 상태가 분리되어 서로 분리됩니다. 그러나 어쨌든 별도의 앱 풀을 사용하는 것이 좋습니다. 하나에서 문제가 발생하면 다른 하나를 재활용하거나 수정하기 위해 둘 다 중단하지 않아도됩니다. 또한 NTFS 권한을 잠 가서 서로 분리 할 수있는 유연성이 향상되었습니다.
Scott Forsyth-MVP

@ ScottForsyth-MVP 나는 그들이 완전히 고립되기를 원했기 때문에 당신의 제안에 귀를 기울였습니다. 나는 새 응용 프로그램 풀과 새로운 서비스 계정을 생성하고, 사용 ID를 설정하는 기사를. 왜 그런지 모르겠지만 System.UnauthorizedAccessException페이지를 표시하는 데 시간이 오래 걸리는 응용 프로그램이 있습니다 . 응용 프로그램은 여전히 ​​작동하지만 속도가 느리고 Visual Studio를 열라는 예외가 발생합니다. 내가 잃어버린 것에 대한 생각이 있습니까?
웹 사용자

@ ScottForsyth-MVP ServerFault에 게시 한이 질문을 볼 수 있습니까? 감사!
웹 사용자

@WebUser. IIS_WPG 그룹에 사용자 지정 ID를 추가해야 할 수도 있습니다. IIS6의 요구 사항이었습니다. 나는 당신의 다른 게시물에도 대답했습니다.
Scott Forsyth-MVP 2009 년

2

또한 확인할 수 있습니다. 알고 계십니까 : IIS 7 / 7.5의 가상 디렉터리와 응용 프로그램의 차이점

편집 : 링크가 죽었을 때 사이트를 인용하십시오.

IIS 7 / 7.5에는 가상 디렉터리 및 응용 프로그램을 만드는 옵션이 있습니다.

가상 디렉터리 란 무엇입니까?

가상 디렉토리는 로컬 실제 디렉토리 또는 원격 서버의 디렉토리에 맵핑되는 디렉토리입니다. 가상 디렉터리는 부모 프로세스와 동일한 작업자 프로세스에서 코드를 실행합니다. 웹 사이트와 가상 디렉토리의 응용 프로그램 풀은 동일합니다.

이미지 05

응용 프로그램이란 무엇입니까?

응용 프로그램은 다른 응용 프로그램 풀에서 응용 프로그램을 실행할 수있는 옵션이 있다는 점을 제외하면 가상 디렉터리와 동일합니다.

이미지 06

참고 : 이것은 위의 스크린 샷이 applicationhost.config에서 보이는 방식입니다.


0

가상 디렉터리는 단지 로컬 컴퓨터 나 원격 서버의 폴더를 가리 키거나 가리 킵니다. IIS의 기본 웹 사이트에서 가상 디렉터리를 만드는 경우 내부 문제로 인해 기본 웹 사이트가 중단 된 경우 가상 디렉터리에 액세스 할 수 없습니다.

응용 프로그램 추가는 단지 콘텐츠를 제공하거나 프로토콜을 통해 서비스를 제공하는 파일 그룹입니다. 응용 프로그램은 응용 프로그램 풀에 속합니다. 어떤 문제로 인해 기본 웹 사이트가 다운되었다고 가정하면 응용 프로그램 풀에 속하는 응용 프로그램에는 영향을 미치지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.