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.