2008/08/12

Temporary ASP.NET Files 폴더 위치 변경

ASP.NET 사이트로 구성된 웹사이트가 있을 경우, 최초 호출시에 해당 페이지는 컴파일 되며 컴파일된 라이브러리(어셈블리) 파일 및 임시파일 들은 Temporary ASP.NET Files 폴더에 저장 됩니다.

%WINDOWS%\Microsoft.NET\Framework\버젼별\Temporary ASP.NET Files 폴더이며,. root 폴더 밑에 해시된 사이트 및 페이지 형식으로 저장 됩니다. 또는 가상 디렉토리의 경우에는 가상 디렉토리 이름 밑에,. 그리고 Visual Studio 2005 또는 2008 에서의 로컬호스트 사이트 요청시에는 사이트 이름으로 폴더가 만들어지고 그 밑에 저장이 됩니다.

폴더 트리는 원래 사이트의 트리 구조와 거의 같게 가져가며, 파일들은 [page].aspx.[folder-hash].compiled 와 같은 형식 입니다.



이렇게 컴파일된 라이브러리 파일들은,. 하나의 웹페이지 코드 용량 자체가 작기 때문에 사이트 전체의 페이지 갯수에 대한 개별 파일들 자체의 용량을 합하더라도 그다지 많지 않습니다. 보통 일반적인 사이트의 경우에는 5~10M 내외 정도 니깐요...^^

이러한 컴파일된 라이브러리 파일들은 삭제해 됩니다. 없으면 다시 IIS 에서 컴파일을 요청하기 때문에요... 물론 최초 컴파일시에는 사이트 응답이 매우 느려집니다.

그런데,. 사이트 갯수가 매우 많거나 또는 대형 웹사이트,. 특히 수많은 페이지 및 상당량의 코드로 구성된 사이트가 운영되는 경우 그 용량을 무시할수는 없겠지요.

그러한 서버의 경우,. 개별 웹사이트 별로 또는 서버 전체 구성으로 컴파일된 라이브러리 저장 위치를 특정 위치로 변경을 할수 있도록 닷넷 프레임워크에서는 web.config 에서의 컴파일 섹션을 사용자가 지정 가능하도록 지원합니다.


web.config 의 기본 경로는 닷넷 프레임워크 버젼별로 config 폴더에서 찾을수 있으며,. 여기의 web.config 는 서버 전체에 영향을 줍니다. 사이트 수준에서의 설정은 각 개별 웹사이트의 web.config 에서의 설정이 가능합니다.

<!-- compilation Attributes:
      tempDirectory="directory"
      debug="[true|false]"      // Default: false
      strict="[true|false]"     // Default: false
      explicit="[true|false]"   // Default: false
      batch="[true|false]"      // Default: true
      batchTimeout="timeout in seconds"     // Default: 15 seconds
      maxBatchSize="max number of pages per batched compilation"    // Default: 1000 classes
      maxBatchGeneratedFileSize="max combined size (in KB) of the generated source files per 
                     batched compilation"   // Default: 3000KB
      numRecompilesBeforeAppRestart="max number of recompilations before appdomain is
                     cycled"    // Default: 15 recomplations
      defaultLanguage="name of a language as specified in a <compiler/> tag below"     
                     // Default: VB
-->

compliation 섹션에서의 속성값으로는 여러가지 값을 지원 하는데,. 그중에 tempDirectory 입니다. 값에 특정 폴더의 위치를 지정해 주면 됩니다.

<compilation tempDirectory="d:\Temporary ASP.NET Files" />

기본 경로외 다른 경로로 지정할 경우에는 폴더의 권한 설정을 해줘야 합니다. 그 이유는 앞서 간단하게 얘기한 것처럼 컴파일 요청을 웹프로세스에서 요청을 하기 때문에 폴더의 수정(쓰기,수정,삭제)권한이 필요합니다.



11-netframework-temporary-asp.net-files.gif

댓글 없음:

댓글 쓰기

가장 많이 본 글