OnError에서 오류를 기록 할 수있는 응용 프로그램이지만 사용자에게 의미있는 것을 보여주기 위해 리디렉션을 수행 할 수 없습니다. 아이디어가 있으십니까? web.config에서 maxRequestLength를 설정할 수 있지만 어쨌든 사용자는이 제한을 초과 할 수 있으며 일부 정상적인 오류를 표시해야한다고 알고 있습니다.ASP.NET - 큰 파일을 업로드 할 때 오류 페이지 표시 방법 (최대 요청 길이 초과)?
답변
web.config에서 maxRequestLength를 설정하고 (machine.config의 기본 4MB를 무시)이 제한을 초과하면 대개 HTTP 401.1 오류가 발생합니다.
<system.web>
<customErrors mode=On defaultRedirect=yourCustomErrorPage.aspx />
</system.web>
매번 오류가 보여 한 사용자가 리디렉션됩니다 : 당신은 설치가 system.web 섹션 내에 귀하의 Web.config의 인 CustomError 섹션이 있습니다 응용 프로그램 수준에서 일반적인 HTTP 오류를 처리하기 위해
맞춤 오류 페이지로 이동하십시오.
당신은 같은 것을 할 수있는 각 오류에 대한 전문 페이지하려면 다음 등
<system.web>
<customErrors mode="On" defaultRedirect="yourCustomErrorPage.aspx">
<error statusCode="404" redirect="PageNotFound.aspx" />
</customErrors>
</system.web>
그리고있다.
또는 IIS에서 가상 디렉터리 속성의 CustomErrors 탭을 편집하여 선택한 오류 처리 페이지를 가리킬 수 있습니다. 위의
는 401.x 오류 작동하지 않는 것 -이 코드 프로젝트 문서는 매우 비슷한 문제가 될 것으로 보인다 무엇에 대한 해결 방법을 설명합니다 Redirecting to custom 401 page
게시 된 파일의 길이 (FileUpload.PostedFile.ContentLength)를 확인하여 제한된 파일인지 여부를 확인하고 필요한 경우 친숙한 오류 메시지를 표시 할 수 있습니다.
작동하지 않습니다 - asp.net이 시점에 도달 할 수 없습니다. – st78
좋아요, 그건 저에게 새로운 것입니다. 먼저 파일 업로드/거부를 결정하는 것보다 콘텐츠 길이를 확인할 수 있다고 생각했습니다. –
정보를 제공해 주셔서 감사합니다. 방금 체크 아웃했는데 실패합니다. 이전에 사용 했으므로 알아두면 좋은 점과 그 문제가 있다는 것을 깨닫지 못했습니다. –
Global.asax - OnError() 처리기에서 오류를 catch 할 수 있어야합니다. 하지만 불행히도 귀하의 초기 요청이 완료되며 일부 오류 통지와 함께 동일한 업로드 페이지를 렌더링 할 수 없습니다.
가장 많이 할 수있는 일은 OnError() 처리기 내에서 간단한 리디렉션 절이 포함 된 친숙한 오류 페이지를 표시하고 해당 페이지에서 사용자가 페이지를 트리거 한 페이지로 돌아갈 수있는 뒤로 링크 또는 유사한 기능을 제공하는 것입니다 처음에는 오류.
업데이트 :
나는 최근 파일 업로드시 정확한 검사를 구현했고, 내가 생각 해낸 것은 전적으로 내 요구 사항을 충족 SWFUpload 라이브러리이며, 또한 추가 기능을 많이 가지고. Steve Sanderson이 제공하는 jquery 래퍼와 함께 사용했습니다. 자세한 내용은 here을 참조하십시오.
중요한 점은 플래시가 클라이언트 측에서 파일 크기를 감지하고이 경우 충족되면 적절히 반응 할 수 있다는 것입니다. 그리고 나는 이것이 당신이 필요로하는 것과 정확히 같다고 봅니다.
더 나아가 클라이언트에 플래시가 설치되어 있지 않은 경우 기본 업로드 버튼 0으로 정상적으로 감축하려는 경우 플래시 감지 확인을 구현할 수 있습니다.
사실, OnError에서 예외를 catch 할 수 있지만 Response.Redirect()는 아무 것도하지 않습니다. – st78
불행히도 IIS7을 필요로하고 IIS6이 파일 크기를 볼 수있는 단계에 도달하지 않기 때문에 사용자 지정 처리기로이를 catch 할 수 있습니다. 업로드가 완료되거나 오류가 발생했을 때만 크기를 알 수 있습니다.
이것은 ASP.NET의 알려진 문제입니다. 또 다른 (절름발이) 대안은 요청에서 이전에이 문제를 처리하고 플래시 기반 업 로더를 사용하는 것입니다. John은 링크 아래 몇 개의 링크로 연결됩니다.
업데이트 : 존 갤러 웨이는 looked deeper into this problem이 듯 IIS는 항상 파일을 삼키는 후 대형에 있다고 당신에게 갖고있는 것 같아요 때문에 RIA-업 로더는, 유일한 합리적인 대안처럼 보인다.
우리 서버는 IIS7을 실행하며,이 문제를 극복하는 방법에 대한 답변을 찾을 수있는 링크/키워드를 제공 할 수 있습니까? – st78
세르게이,
당 JohnIdol의 대답을 얻으려면 상태 코드에 대한 맞춤 오류 페이지를 설정해야합니다. 예컨대 :
<customErrors mode="On" defaultRedirect="~/Errors/Error.aspx">
<error statusCode="413" redirect="~/Errors/UploadError.aspx"/>
</customErrors>
나는 클라이언트 프로젝트에서 같은 문제를 해결했다, 이것은 나를 위해 일한 솔루션 이었기 때문에 나는 알고있다. 불행히도 그것은 내가 발견 한 유일한 해결책이었습니다 ... 코드에서이 특별한 문제를 잡는 것은 불가능했습니다. 예를 들어 snomag가 제안한 것처럼 게시 된 파일의 길이를 확인하거나 global.asax에서 오류를 포착합니다. 당신과 마찬가지로, 나는 또한 다른 해결책을 생각해 내기 전에 이러한 다른 접근법을 시도해 보았습니다. (사실 나는 결국 웹에서 어딘가에서이 문제를 발견했다.)
희망이 있습니다.
이상한 '최대 요청 길이 초과'오류 500이 발생합니다. –
대용량 업로드를 처리하는 가장 좋은 방법은 파일을 청크로 분해 할 HttpModule을 구현하는 솔루션을 사용하는 것입니다. 사전 압연 솔루션을 사용하면 파일 크기를 제한 할 수 있습니다. 많은 사람들이이 페이지의 링크를 게시하여 귀찮게하지 않을 것입니다. 그러나 귀찮게하지 않으려면 수 있습니다.은 앱의 Global.asax Application_Error 이벤트에서이 문제를 처리합니다. 응용 프로그램이 .NET 4.0의 경우, 거기에 코드 블록을 스틱 :
if (ex.InnerException != null && ex.InnerException.GetType() == typeof(HttpException) && ((HttpException)ex.InnerException).WebEventCode == System.Web.Management.WebEventCodes.RuntimeErrorPostTooLarge)
{
//Handle and redirect here, you can use Server.ClearError() and Response.Redirect("FileTooBig.aspx") or whatever you choose
}
출처 : 당신이 이전 프레임 워크를 실행하는 경우 http://justinyue.wordpress.com/2010/10/29/handle-the-maximum-request-length-exceeded-error-for-asyncfileupload-control/
, 여기 (가 VB에서,하지만 코드를 시도 그것은 쉽게 번역 할 수 있습니다) : http://www.webdeveloper.com/forum/showthread.php?t=52132
- 1. 너무 큰 파일을 업로드 할 때 의미있는 오류 표시
- 2. AsyncFileUpload : 최대 요청 길이 초과 경고 오류를 숨기려면 어떻게해야합니까?
- 3. Asp.net 요청 길이 제한을 초과하여 파일을 업로드 하시겠습니까?
- 4. 요청 시간 초과 오류
- 5. 브라우저 제한 최대 페이지 길이
- 6. ASP.NET MVC 업로드 파일 시간 초과
- 7. ASP.net의 HttpRequest 최대 길이 초과 문제
- 8. 파일을 업로드 할 때 파일을 업로드 할 때
- 9. FromBase64String 방법 최대 길이
- 10. 큰 파일을 서버에 업로드
- 11. 플렉스에서 더 큰 파일을 프로그래밍 방식으로 업로드
- 12. ASP.NET Response.Redirect 최대 URL 길이
- 13. WebLogic "명시된 컨텐츠 길이 초과"오류
- 14. 파일을 업로드 할 때 읽기
- 15. 큰 이미지 파일을 SharePoint에 업로드
- 16. ASP.NET MVC에서 파일 업로드가 허용되는 크기를 초과하면 사용자 정의 오류 페이지 표시
- 17. 큰 파일 업로드 (2GB 최대) Windows Azure Webrole SWFUploader 사용
- 18. gsata로 CSV 업로드 - 콘텐츠 길이 오류
- 19. 업로드 큰 파일
- 20. 큰 파일을 레일에 일괄 업로드
- 21. ASP.NET 페이지 시간 초과 변경
- 22. 왜 파일을 업로드 할 때 오류 코드가 '5'입니까?
- 23. ASP.NET Adrotator 컨트롤 전체 페이지 길이 반복
- 24. iPad의 ASIHTTPRequest : "요청 시간 초과"
- 25. SQLAlchemy - 최대 열 길이
- 26. ASP.NET MVC2로 파일을 업로드 할 수 없습니다.
- 27. 큰 사진 업로드 처리
- 28. InnoDB 최대 키 길이
- 29. Tomcat 5.5, 요청 당 최대 업로드 속도가 있습니까?
- 30. tomahawk로 파일 업로드 - 오류 메시지 표시 문제
고마워요, 이것은 오류 처리에 대한 완전한 가이드입니다. XML과 똑같은 결과가 나옵니다. 그러나 요청 길이를 초과하는 경우에는 도움이되지 않습니다. – st78
마지막 편집 내용을보고 무언가를 생각해 내면 알려주세요 – JohnIdol
이 페이지에서 제공되는 maxRequestLength 설정 방법을 모르면 다음 링크를 클릭하십시오. [MSDN] (http://msdn.microsoft.com/en-us/) library/e1f13641.aspx) –