IIS6 다운로드/업로드 크기제한

웹/ASP 2015. 9. 20. 15:35 Posted by 초절정고수

1. IIS 등록정보 
 -> 메타베이스 직접편집 허용 체크 :메타베이스소스를 iis 실행중일때도 수정 가능하도록 허용해준다.

2. 이제 제한되어있는 용량을 풀어주기만 하면 땡!
 - 메타베이스 파일위치 : C:\WINDOWS\system32\inetsrv\MetaBase.xml

 - 다운로드 버퍼링 제한

 -> AspBufferingLimit="4194304"  바로 이부분!!! 1024로 나누어보면 4096 byte 즉 4M 이다!!!
      늘리고 싶은 용량(byte) * 1024 로 해당부분 수정
 - 업로드 용량 제한
 -> AspMaxRequestEntityAllowed="204800"  역시 1024로 나누어보면 200 byte -_-a
      늘리고 싶은 용량(byte) * 1024 로 해당부분 수정

' > ASP' 카테고리의 다른 글

IIS 6 에서 ASP 에서 대용량 파일을 업로드시 403 오류  (0) 2014.04.30
ASP에서 UTF-8 처리 외 기타  (0) 2014.04.08
ASP DateAdd함수  (0) 2014.03.04

요청 개체 오류 'ASP 0104 : 80004005'

허용되지 않는 작업

/stock/RegStock.asp, 줄 2

 

이런 오류가 발생할때~~~~?????

 

========================================================

 

 

파일 형식때문에 오류가 나는게 아니구

 

파일 크기 때문에 오류가 나는거예요..^^

 

Server의 운영체제가 windows 2003 이시죠?

 

서비스에서 IIS Admin Service 를 중단하고 C:\winnt\system32\inetsrv 의

 

metabase.xml을 수정하세요...

 

주의할 점 : 꼭 IIS를 중단하고 수정할 것.

그렇지 않으면 AspMaxRequestEntityAllowed 이 값이 사라져서 한참을 고생하게 됩니다...

 

AspMaxRequestEntityAllowed

 

이부분을 204800 = 200kb (200 kb로 제한되어 있습니다.)

204800 * 5 (10MB가 되겠죠)

 

고친후 iis를 다시 시작하시면 됩니다...

 

[출처 : 네이버 지식인]

 

========================================================================

 

 

IIS 6 에서 ASP 에서 대용량 파일을 업로드시 403 오류 - KB327659

 

ASP(Active Server Pages) 요청을 사용하여 Microsoft 인터넷 정보 서비스(IIS) 5.0, Microsoft 인터넷 정보 서비스(IIS) 5.1 또는 Microsoft 인터넷 정보 서비스(IIS) 6.0이 설치된 컴퓨터에 큰 파일을 업로드하면 업로드가 실패할 수 있습니다. 또한 403 오류 응답이나 다음 중 하나와 유사한 오류 메시지가 나타날 수 있습니다.


오류 메시지 1

Request object error 'ASP 0104 : 80004005' 허용되지 않는 작업 :

 

 

오류 메시지 2

007~ASP 0104~허용되지 않는 작업

많은 폼 데이터를 ASP 페이지에 게시할 때 다음과 유사한 오류 메시지가 나타날 수 있습니다.

오류 ’80020009’ 예외가 발생했습니다.

또한 Response.binaryWrite 메서드를 사용할 때 파일 업로드가 실패할 수 있습니다.


이 문제는 Content-Length 헤더가 있고 Content-Length 헤더에서 IIS 메타베이스의 AspMaxRequestEntityAllowed 속성 값보다 큰 데이터 양을 지정하는 경우 발생합니다. AspMaxRequestEntityAllowed 속성의 기본값은 204,800바이트입니다.

 


해결 방법

cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed size

 

(*이 명령에서 size는 허용할 최대 파일 크기 업로드의 자리 표시자입니다. 최대값은 1,073,741,824바이트입니다. 이 값을 원하는 기능에 허용되는 최소값으로 설정하십시오.)

 

--> 업로드 컴포넌트의 성능에 따라서, 대용량 파일을 업로드 하면 웹서버측 메모리 과다 점유로 인해서 성능저하가 발생할 수 있으니 조심 스럽게 설정하는게 좋습니다.^^

이와 관련된 메타베이스 값으로 AspBufferingLimit 있습니다. 이 부분은 다운로드 버퍼링에 관련된 것으로 파일 링크를 막기 위해서 Asp 코드에 파일 쓰기후 다운로드 처리를 하는 경우가 많은데요,. 이때 대용량 파일 다운로드시에 지정된 크기 이상일 경우 오류가 발생하게 됩니다.

AspBufferingLimit : http://msdn.microsoft.com/library/default.asp?url=/library/
en-us/iissdk/html/ecfc3d4a-0178-45e8-89f8-304429b7fda5.asp

 

AspMaxRequestEntityAllowed 속성은 ASP 요청의 엔터티 본문에서 허용되는 최대 바이트 수를 지정합니다. Content-Length 헤더가 있고 Content-Length 헤더에서 AspMaxRequestEntityAllowed 속성 값보다 큰 데이터 양을 지정하는 경우 IIS에서 403 오류 응답을 반환합니다. AspMaxRequestEntityAllowed 속성은 PUT 요청과 POST 요청에만 적용되고, GET 요청에는 적용되지 않습니다. 이 메타베이스 속성이 ASP에만 적용되기 때문에 다른 ISAPI(인터넷 서버 API) 확장은 영향을 받지 않습니다.

 

AspMaxRequestEntityAllowed 속성은 MaxRequestEntityAllowed 속성의 기능과 관련되어 있습니다. 그러나 AspMaxRequestEntityAllowed 속성은 ASP 요청에만 적용됩니다. MaxRequestEntityAllowed 속성을 WWW 서비스(World Wide Web 게시 서비스) 수준에서 1MB로 설정할 수 있습니다. 그런 다음 특정 ASP 응용 프로그램에서 더 작은 양의 데이터를 처리하는 것을 알고 있는 경우 AspMaxRequestEntityAllowed 속성을 더 작은 값으로 설정할 수 있습니다.

 

--> ASP.NET 에서는 machine.config  또는 전역 web.config 및 각 웹사이트의 web.config 에서 지정할 수 있습니다.^^

스크랩원본글: http://www.serverinfo.pe.kr/TipnTech.aspx?Category=&Mode=View&KeyName=&KeyWord=&Page=&Seq=289

 

 

 

[출처웹사이트: 서버주무르기[Serverinfo.pe.kr]

 


' > ASP' 카테고리의 다른 글

IIS6 다운로드/업로드 크기제한  (0) 2015.09.20
ASP에서 UTF-8 처리 외 기타  (0) 2014.04.08
ASP DateAdd함수  (0) 2014.03.04

ASP에서 UTF-8 처리 외 기타

웹/ASP 2014. 4. 8. 18:34 Posted by 초절정고수

1. 모든 ASP 코드 페이지 첫줄에 다음과 같은 코드를 추가합니다
<% @CODEPAGE="65001" language="vbscript" %>
<% Option Explicit %>
<% session.CodePage = "65001" %>
<% Response.CharSet = "utf-8" %>
<% Response.buffer=true %>
<% Response.Expires = 0 %>
 
2. Meta 테그를 다음과 같이 추가 합니다.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
3. Response.ChaRset = "utf-8"  
ASP의 response.charset을 이용해서 문자 코드 세트명을 지정하는 부분 입니다.
설정시 <html> 태그 보다 앞에 선언 되어야 HTML 이 출력되면서 해당 속성을 인식하게 됩니다.

4. 에디트플러스나 울트라 에디터에서 수정후 저장할 때 반드시 Encoding 방식을 UTF-8 로 저장합니다
 
5.DB Insert/Update 시 숫자 타입을 제외한 모든 대상에 N을 추가 합니다
Insert 테이블이름 (칼럼a, 칼럼b) value (N'입력a', N'입력b')
update 테이블이를 set 칼럼a = N'입력a' where 고유칼럼 = '번호'
 
6.DB like 검색시 N 추가
 
7. 파일 첨부 DEXT Upload사용(영문으로 설치)
 SET uploadform = Server.CreateObject("DEXT.FileUpload")
 uploadform.DefaultPath = Server.MapPath(ESP_BBS_DATA)
 uploadform.CodePage = 65001
 wFileSize = 0
 rAttachment = uploadform("txtAttachFile")
 
 If Len(rAttachment) > 0 Then
  wFileName =  uploadform("txtAttachFile").FileName
  wFileSize =  uploadform("txtAttachFile").FileLen
 
  response.write uploadform.DefaultPath
  rAttachment = uploadform.SaveAs(uploadform.DefaultPath & "" & wFileName , False)
  rAttachment = UploadForm.LastSavedFileName
 End If
 
8. 파일 다운로드
 
<% @LANGUAGE='VBscRIPT' CODEPAGE='65001' %>
<%
 'Response.Charset = "UTF-8"
 filepath = Request.QueryString("txtFilepath") '// form으로 파라메터 전달해야 함.
 filename = Request.QueryString("txtFilename")'// form으로 파라메터 전달해야 함.
 
 If filepath = "" Then
  filepath=server.MapPath( Request.QueryString("txtFilename"))
  filename = Mid(filepath, InStrRev(filepath, "")+1)
 Else
  filepath=server.MapPath(filepath)
  filename =  Request.QueryString("txtFilename")
  If filename = "" Then
  filename = Request.QueryString("txtattachment")
  End If
 End If

 filepath = filepath &"" & filename
Call FileDown
%>
 
<%
Sub FileDown
' 참고http://www.taeyo.pe.kr/Lecture/20_TIps/Danny03.asp
 
 Response.Buffer = False
 Response.ContentType = "application/x-msdownload"
 'ContentType 를 선언합니다.
 'server.HTMLEncode
 'server.URLPathEncode
 Response.AddHeader "Content-Disposition","attachment; filename=" & server.URLPathEncode(filename) '//server.URLPathEncode 사용해야만 파일명 재대로 출력
 '헤더값이 첨부파일을 선언합니다.
 Set objStream = Server.CreateObject("ADODB.Stream")
 'Stream 을 이용합니다.
 objStream.Open
 '무엇이든 Set 으로 정의했으면 열어야 겠지요^^
 objStream.Type = 1
 objStream.LoadFromFile filepath
 '절대경로 입니다.
 download = objStream.Read
 Response.BinaryWrite download
 '이게 보통 Response.Redirect 로 파일로 연결시켜주는 부분을 대신하여 사용된 것입니다.
 Set objstream = nothing
 '초기화시키구요.
End Sub
%>
 
<%
Sub DEXTDown  ' DEXT.FileDownload 는 일본어 OS에 영문으로 설치시 한글파일 찾지 못함.(DextUpload 2.0까지는 그랬음)
 'On Error Resume Next
 Response.Buffer = False
 Response.AddHeader "Content-Disposition","inline;filename=" &  server.URLPathEncode(filename)
 set objFS = Server.CreateObject("scripting.FileSystemObject")

 set objF = objFS.GetFile(filepath)
 
 Response.AddHeader "Content-Length", objF.Size
 set objF = nothing
 set objFS = nothing
 Response.ContentType = "application/x-msdownload"
 Response.CacheControl = "public"
 Set objDownload = Server.CreateObject("DEXT.FileDownload")
 objDownload.Download filepath
 Set uploadform = Nothing
End Sub
%>
 
9. CDO Mail발송
Dim iMsg
Dim iConf
Dim Flds
Dim strHTML
Const cdoSendUsingPort = 2 '1:로컬, 2:외부 smtp
set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
Flds.item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  '포트번호
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") =  "" 'ID
Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") =  "" '암호

Flds.Update
Set iMsg.Configuration = iConf
iMsg.To = "xxxx@xxx.ccx" 'ToDo: Enter a valid email address.
iMsg.From = "xxxx@xxx.ccx"  'ToDo: Enter a valid email address.
iMsg.Subject = "This is a test CDOSYS message (Sent via Port 25)"
 
'iMsg..TextBody = strHTMLMsg '// 텍스트
iMsg.HTMLBody = strHTML  '// HTML 제목 깨짐 발생..

iMsg.BodyPart.Charset="UTF-8" '/// 한글을 위해선 꼭 넣어 주어야 합니다.
iMsg.HTMLBodyPart.Charset="UTF-8" '/// 한글을 위해선 꼭 넣어 주어야 합니다.
iMsg.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
 
 
10. ASP에서 배달 확인/ 읽음 확인 구현 방법 http://tong.nate.com/windeo/5767827

http://support.microsoft.com/default.aspx?scid=kb;ko;286430

<%
Set oMsg = CreateObject("CDO.Message")
oMsg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
‘ 생성되는 메시지가 SMTP pickup 디렉터리가 아닌 SMTP 서비스로 전송되게 합니다.
oMsg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "이름"
oMsg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxx"
oMsg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "seo-msg-01"
‘ 생성되는 메시지의 서버, 사서함 및 암호
oMsg.Configuration.Fields.Update

oMsg.From = "smpark@microsoft.com"
oMsg.To = "smpark@microsoft.com"

oMsg.Subject = "읽음 확인 및 배달 확인"
oMsg.DSNOptions = 14
‘ 이 메시지의 배달 상태 확인(delivery status notification:DSN)값으로 14는 배달 성공, 실패 및 지연시
‘ 확인메시지 생성
oMsg.Fields("urn:schemas:mailheader:return-receipt-to") = smpark@microsoft.com <mailto:smpark@microsoft.com>
‘ 받는 사람이 이 메시지를 열었을 때 읽음 확인 메시지가 여기에서 지정된 사람에게 보내집니다.
oMsg.Fields("urn:schemas:mailheader:disposition-notification-to") = smpark@microsoft.com <mailto:smpark@microsoft.com>
‘ MDN(Message Disposition Notification)은 이 메시지의 확인 메시지가 리턴 될 수신자를 지정합니다.
‘ MDN에 대하여는 Request for Comments (RFC) 2298에 자세히 설명됩니다.
oMsg.TextBody = " SMTP 서버를 통한 읽음 확인 및 배달 확인 메시지"
oMsg.Fields.Update
oMsg.Send

Set oMsg = Nothing
%>


11. 업로드 컴포넌트 UTF-8 지원여부 확인
SiteGalaxy(사이트 갤럭시) 및 ABC 업로드 :  utf-8을 지원하지 않음
덱스트업로드는 3.x 이후 지원


' > ASP' 카테고리의 다른 글

IIS6 다운로드/업로드 크기제한  (0) 2015.09.20
IIS 6 에서 ASP 에서 대용량 파일을 업로드시 403 오류  (0) 2014.04.30
ASP DateAdd함수  (0) 2014.03.04

ASP DateAdd함수

웹/ASP 2014. 3. 4. 16:41 Posted by 초절정고수