2003/05/23

ASP.NET에서 4MB이상 대용량 파일 업로드 하기

■ 요약 기본적으로 ASP.NET 웹 응용 프로그램의 업로드 가능한 파일 크기는 4096 Kbytes로 되어있어 자료실등의 자료를 더큰용량을 업로드 할 경우 업로드가 되지 않습니다. 4M 제한은 악의적인 대용량 업로드로 인한 서버의 피해를 줄이고자 함입니다.

■ 대용량 파일 업로드 하기 4MB 이상 크기의 파일을 업로드 하기 위해서는 machine.config (혹은, web.config) 파일에서 속성 값을 변경해주면 됩니다.

<configuration>
 <system.web>
  <httpRuntime
         executionTimeout="90" 
         maxRequestLength="4096" 
         useFullyQualifiedRedirectUrl="false" 
         minFreeThreads="8" 
         minLocalRequestFreeThreads="4" 
         appRequestQueueLimit="100"/>
 </system.web>
</configuration>
 

maxRequestLength - ASP.NET에서 지원하는 최대 파일 업로드 크기를 나타냅니다. 이 제한은 서버에 큰 파일을 게시할 때 발생하는 서비스 거부 공격을 방지하는 데 도움이 됩니다.

*업로드된 용량이 클수록 Asp.NET코드에서 별도 처리를 해주지 않을경우 다운로드 파일 크기 많큼 메모리가 소비되니, 주의해야 합니다.

IIS 재설치한 후에 ASP.NET 매핑 복구

■ 요약

Microsoft .NET Framework SDK(Software Development Kit)나 Visual Studio .NET을 설치한 후에 IIS(Internet Information Server) 매핑이 이루어져 ASP.NET 새 파일의 확장명과 설정이 연결됩니다.

그런데, SDK나 Visual Studio 설치 프로그램을 실행했을 때 IIS를 설치하지 않았거나, SDK 또는 Visual Studio 설치 프로그램을 실행한 후 IIS를 제거하고 다시 설치한 경우에는 이러한 설정이 제대로 이루어지지 않습니다. ASP.NET 페이지를 보려고 하면 예기치 않은 동작이 발생합니다.

■ 매핑복구방법

*아래 2가지 방법중 하나를 실행하면 됩니다. 개인적으로 1번을 추천.

1. Aspnet_regiis.exe 유틸리티 이용.

cmd 프롬프트에서 "\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe" -i를 실행하면 자동으로 등록됩니다.

-i 옵션은 ASP.NET을 IIS세팅하고, 전역 메타베이스에 등록을 해줘 하위 사이트에서 ASP.NET을 사용할수 있도록 해줍니다. 또한, 기존 ASP.NET버젼을 업데이트 해줍니다.

2. Aspnet_isapi.dll을 통해 레지스트리 등록

regsvr32 -i \Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll을 레지스트리에 직접 등록합니다.

*참로고 Windows Server 2003에 기본으로 설치된 프레임웍의 버젼은\Windows\Microsoft.NET\Framework\v1.1.4322\ 입니다.
최신 버젼의 프레임웍으로 설정할 경우 해당 버젼의 폴더에서 실행하면 됩니다.




23-TechNetB_masthead_ltr.gif

2003/05/02

IIS6에서 asp,asp.net 같은 동적파일 설정 및 해제

Windows Server 2003에서 보안을 높이기 위해 기본적으로 설치되는 서비스를 최소화했으며, 설치되는 서비스라도 enable이 안되어 있습니다.

IIS를 설치했는데, 단순html페이지는 브라우징이 되나, asp나, aspx는 안됩니다. 이것은 MS에서 의도적으로 꼭 enable을 해야만 되게끔 되어 있습니다.

enable이 안되어 있는 경우 다음과 같은 에러메시지를 뿌립니다.
--------------------------------------------------------------------------------------------------
기본적으로 인터넷 정보 서비스(IIS)가 Microsoft Windows Server 2003 제품군에 설치되면 IIS는 정적 콘텐트(HTML)만 제공합니다. Active Server Pages(ASP) 또는 ASP.NET 페이지 같은 동적 콘텐트를 요청하면 다음과 같은 오류 메시지 중 하나가 나타납니다.

HTTP 오류 404 - 파일을 찾을 수 없습니다.
-또는-
HTTP 오류 404 - 파일 또는 디렉터리를 찾을 수 없습니다.

IIS가 다른 종류의 콘텐트를 제공하도록 하려면 관리자는 IIS 관리 콘솔의 웹 서비스 확장 노드에서 이 콘텐트를 잠금 해제해야 합니다. 이렇게 하려면 기존의 웹 서비스 확장을 사용 가능하게 설정하거나 새 웹 서비스 확장을 추가하십시오.
--------------------------------------------------------------------------------------------------

enable 방법은 다음과 같습니다. 물론, cgi나, php를 사용하는 경우도 동일합니다.

IIS 6.0에서 기존의 웹 서비스 확장 설정
1. IIS 관리자를 열고 마스터 서버 노드(즉, servername 노드)를 확장한 다음 웹 서비스 확장 노드를 선택합니다.
2. IIS 관리자의 오른쪽 창에서 설정할 확장을 마우스 오른쪽 단추로 누릅니다. 이 예에서는 Active Server Pages를 누릅니다.
3. 허용 확인

IIS 6.0에 새 웹 서비스 확장 추가
IIS가 웹 서비스 확장 목록에 아직 나열되지 않은 특정 ISAPI(Internet Server Application Programming Interface) 또는 CGI(Common Gateway Interface) 확장을 요청하는 콘텐트를 제공하도록 하려면 다음순서로 하시면 됩니다. 물론, php도 동일합니다.
1. IIS 관리자를 열고 마스터 서버 노드를 확장한 다음 웹 서비스 확장 노드를 선택합니다.
2. IIS 관리자의 오른쪽 창의 작업에서 새 웹 서비스 확장 추가를 누릅니다.
3. 확장 이름 상자에 추가할 확장의 알기 쉬운 이름(예: "FrontPage Server Extensions")을 입력합니다.
4. 필요한 파일 상자에서 추가를 누른 다음 특정 확장에 대한 요청을 처리할 파일의 경로와 이름을 선택합니다. 경로와 파일 이름을 선택한 후에 확인을 누릅니다.
5. 확장을 즉시 사용할 수 있어야 하는 경우 확장 상태를 [허용됨]으로 설정 확인란을 선택합니다.




02-iis6ex.gif

Windows Server 2003 시스템 구성 유틸리티(msconfig.exe)

Windows95,98에서 msconfig를 지원을 했습니다. 그러나, Windows2000에서는 지원을 하지 않았지만, 다운로드 받아서 설치를 해서 사용할수 있었습니다. 굳이 msconfig를 사용하지 않더라도 할수 있습니다.

그러나, msconfig 툴을 사용하면 쉽게 환경설정을 할수 있습니다.
시스템 구성 유틸리티(Msconfig.exe)는 Microsoft 고객기술지원부 기술자가 Windows 구성 문제를 진단할 때 사용하는 일상적인 문제 해결 단계를 자동화한 것입니다.

이 도구를 사용하면 시스템 구성을 수정하고 제거 프로세스 방법을 통해 문제를 해결할 수 있습니다.

□ Msconfig 유틸리티 툴을 통해서 가능한 작업

- 일반 : 시작이 일반, 또는 시스템의 점검을 위한, 시작시 로드할 설정파일 선택가능.
- System.ini : 시작옵션에서 system.ini를 로드할경우 ini내의 모듈별 로드
- Win.ini : system.ini와 같이 모듈별 로드 가능.
- Boot.ini : 시스템시작시 부트옵션을 설정할수 있습니다. 물론, 직접파일을 수정도 가능.
- Services : 서비스의 시작옵션을 제어할수 있습니다. 이부분도 관리도구에서 직접가능.
- Startup : 부팅시 자동시작 프로그램 및 서비스 선택가능.




02-msconfig.gif

가장 많이 본 글