Visual Studio에서 사용되는 App_Data 폴더는 무엇입니까?


156

Visual Studio에서 새 ASP.NET 응용 프로그램을 만들면 몇 개의 파일과 폴더가 자동으로 만들어집니다. 이러한 폴더 중 하나를이라고 App_Data합니다.

또한 메뉴 옵션을 선택하여 웹 사이트를 게시 할 때 Build->Publish확인란을 사용할 수 있습니다 Include files from the App_Data folder.

이 파일에 저장된 파일과 하위 폴더에 웹을 통해 액세스 할 수 없다고 가정합니까? 예를 들어 응용 프로그램 코드에서만 사용하려는 폴더 리소스를 넣는 것이 안전합니까?

App_Data폴더 의 실제 용도는 무엇입니까 ?

편집하다:

모든 답변에 감사드립니다. 지금까지받은 답변에서 나는 언급 된 두 가지 점에 주로 관심이 있습니다.

  1. App_Data는 기본적으로 파일 기반 데이터 저장소의 저장 지점입니다.
  2. 웹에서 볼 수 없어야하며 웹 앱에서 데이터를 저장하고 읽을 수있는 장소입니다.

"웹에서 볼 수 없음"을 보장하는 방법을 누군가가 지정할 수 있습니까? 표준 배포를 수행 할 때 그 사실에 의존 할 수 있습니까, 아니면 서버에서 일부 IIS 설정을 확인해야합니까?

응용 프로그램에서만 액세스 할 수있는 pdf 파일 세트가있는 경우. App_Data 폴더가 사용하기에 적합한 장소입니까, 아니면 별도의 폴더를 만들고 웹에서 액세스 할 수 없도록 IIS를 수동으로 설정해야합니까?

답변:


119

App_Data는 기본적으로 파일 기반 데이터 저장소의 저장소 지점입니다 (예 : SQL Server 데이터베이스 저장소와 반대). 예를 들어 DB에 대한 호스팅 비용이 비싼 경우와 같이 일부 간단한 사이트는 XML로 저장된 콘텐츠에이를 사용합니다.


8
이 답변에 감사드립니다. 추가해야 할 중요한 점은 App_Data의 내용이 기본적으로 JaredPar에서 언급 한 것처럼 웹에서 볼 수 없다는 것입니다. 당신이 주석으로도 "이 문제는 *의 .config httphandlers에서 수정할 수 있습니다"
— padn

app_data 폴더에 로컬 웹 서비스에 대한 참조가 포함되어 있습니까? 내 웹 응용 프로그램은 .net F5 실행에서 제대로 작동합니다. 그러나 ISS에서 패키징 및 배포 한 후 웹 서비스가 작동하지 않습니다 ... :(
— bonCodigo

1
또한이 폴더는 로컬 데이터베이스 파일을 저장하는 데 사용됩니다.
— Andrei Khotko

1
언급되지 않은 한 가지는 파일이 변경 될 때 IIS가 웹 프로세스를 재부팅하지만 App_Data는 이것에서 제외된다는 것입니다!
— 피터

43

IIS에서 시스템을 강조 표시하고 "요청 필터링"을 두 번 클릭 한 후 "숨겨진 세그먼트"탭을여십시오. "App_Data"가 제한된 폴더로 표시됩니다. 예,이 스레드가 실제로 오래되었음을 알고 있지만 여전히 적용 가능합니다.


25

App_data의 의도 된 용도는 웹 프로세스에 필요한 애플리케이션 데이터를 저장하는 것입니다. 웹에서 볼 수 없으며 웹 앱이 데이터를 저장하고 읽을 수있는 장소입니다.


7
다만, 해당 폴더의 어떤은 ASP.NET에 의해 제공되는 것을 차단 "안"하지
— 존 시핸

@ 존, 나는 그 행동을 "변화"시키는 방법이 있다는 인상을 받았다. 그렇습니다. 그렇게하는 것은 분명히 악하지만 그게 얼마나 흔한 지 잘 모르겠습니다.
— JaredPar

"보이지 않는"방법은 어떻게 해결됩니까? IIS에서 App_data 폴더에 특정 설정이 있습니까?
— padn

@ padn, 스택에 대해 100 % 확신 할 수는 없지만 IIS 또는 Asp.Net 스택에서 특수한 경우입니다. msdn.microsoft.com/ko-kr/library/ex526337.aspx
— JaredPar 2012

2
IIRC이 동작에서 변경 될 수 있습니다 *의 .config httphandlers
— annakata

15

Sql Server Express, Access 또는 SQLite와 같은 내장 데이터베이스를 넣을 수있는 곳입니다.


1
또는 사이트가 XML 파일 (예 : 주 / 국가 / 등의 목록 등)과 같이 사용할 수있는 다른 데이터
— John Sheehan

1
그때만 데이터베이스입니까? Response.TransmitFile 메소드를 사용하여 생각 된 코드에만 액세스하려는 pdf 파일을 넣을 수 있습니까?
— padn

5
아무것도-데이터의 개념은 파일 형식이나 형식을 지정하지 않습니다
— annakata

13

App_Data 폴더는 asp.net 작업자 프로세스에 파일 시스템 권한도 있지만 웹 서버를 통해 게시되지 않은 폴더입니다.

예를 들어 문의 양식 의 로컬 CSV를 업데이트하는 데 사용합니다 . 선호하는 이메일 방법이 실패하거나 데이터 소스에 대한 쿼리가 필요한 경우 App_Data 파일이 있습니다.

이상적이지는 않지만 좋은 대체입니다.


10

MSDN의 ASP.NET 웹 프로젝트 폴더 구조 에 대한 설명서 에서 :

웹 프로젝트의 파일을 응용 프로그램에 편리한 임의의 폴더 구조로 유지할 수 있습니다. 응용 프로그램을보다 쉽게 ​​사용할 수 있도록 ASP.NET은 특정 유형의 콘텐츠에 사용할 수있는 특정 파일 및 폴더 이름을 예약합니다.

App_Data 에는 .mdf 데이터베이스 파일, XML 파일 및 기타 데이터 저장소 파일을 포함한 응용 프로그램 데이터 파일이 포함되어 있습니다. App_Data 폴더는 ASP.NET에서 멤버 자격 및 역할 정보를 유지 관리하기위한 데이터베이스와 같은 응용 프로그램의 로컬 데이터베이스를 저장하는 데 사용됩니다. 자세한 내용은 멤버쉽 소개 및 역할 관리 이해 를 참조하십시오 .


7

주요 목적은 응용 프로그램의 데이터베이스 파일을 보관하는 것입니다.

기본적으로 웹에서 액세스 할 수 없습니다.


7

업로드 된 CSV 파일을위한 임시 저장 영역으로 사용합니다. 업로드되면 ajax 메소드는 파일을 처리하고 삭제합니다.


6

App_Data의 용도는 데이터베이스 관련 파일을 저장하는 것입니다. 일반적으로 SQL Server Express .mdf 파일입니다.

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