나는 SO를 찾고 this question을 찾았지만, 내가 묻는 것은 그다지 이상하지 않다. 요청의 ContentLength를 검사 할 수있는 IHttpModule을 만들 수 있는지, 그리고 리디렉션되는지 또는 어떻게 든 요청을 밖으로 내 보내서 새 요청을 생성하는지 궁금합니다.Asp.net 요청 길이 제한을 초과하여 파일을 업로드 하시겠습니까?
특히, 이미지 파일 업로드를 처리하려고하는데 플랫 오류 페이지가 아닌 일종의 경고가있는 업로드 페이지로 계속 요청하고 싶습니다. 큰 요청에 부딪히는이 코드는 다음과 같습니다.
private void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
if (context.Request.ContentLength > (4 * 1024 * 1024))
{
}
}
실행 경로가 원하는대로이 IF 블록에 입력됩니다. 그러나 여기에서, 나는 어디로 가야하는지 정말로 모른다. 이것은 나쁜 접근입니까?
편집 : Fiddler는 (이 모듈없이) IIS가 500 코드를 반환하고 있다고보고합니다. 이 문제를 피하고 코드에서 요청한 페이지에서 200을 반환하고 싶습니다.
rm이 제공하는 링크가 루프에서 ReadEntityBody를 호출하는 이유는 무엇입니까? – Amy
네, 그렇습니다. 그것은 전체 요청에서 읽기 때문에 나중에 응답을 보낼 수 있습니다. –