2014-11-24 4 views
0

POST를 통해 내 ApiController에 파일을 보냅니다.최대 POST 크기가 너무 큽니까?

파일이 2MB 미만이면 모든 것이 매력처럼 작동합니다. 파일이 큰 경우, 나는 오류를 얻을 수 (404)

이 내 컨트롤러에서 (구) 함수 선언입니다 : 엔티티가 너무 큰 경우, 반환

[HttpPost] 
public HttpResponseMessage FileUpload(HttpRequestMessage req, string entryId = "", string owner = "", int debug = 0) 
{ 

이 :

Remote Address:172.17.41.12:443 
Request URL:https://webdevserver/myapp/api/Debug/FileUpload 
Request Method:POST 
Status Code:404 Not Found 

하거나 크기 한계 내에있는 경우 이 : 그래서

Remote Address:172.17.41.12:443 
Request URL:https://webdevserver/myapp/api/Debug/FileUpload 
Request Method:POST 
Status Code:200 OK 

내가 원하는 유용한 오류 메시지를 보내려면 - 어떤 오류 404 확실히 아닙니다! - 자동으로 전송하지 않습니다 IIS HTTP 상태 코드 413, 우연히 그렇게 :(나는 내 코드를 변경 : 그래서

[HttpPost] 
public HttpResponseMessage FileUpload(HttpRequestMessage req=null, string entryId = "", string owner = "", int debug = 0) 
{ 
    if(req==null) { 
     // POST was not handed over to my function by IIS 
     // now is it possible to check whether file was empty or too large!? Because 
     return new HttpResponseMessage(HttpStatusCode.RequestEntityTooLarge); 
     // should only be sent if POST content was really too large! 

, 나는 POST 데이터의 크기가 너무 크거나 POST 여부를 확인 할 수있는 방법 이것은 디자인에 의해 수행 된 이후 빈?

+0

[webrequest-a-404-13] ([http://stackoverflow.com/questions/9310926/iis7-webrequest-failing-with-a-404-13-when- 요청 크기 params-exce) –

+0

@ bastos.sergio 귀하의 의견에 감사드립니다. 그 질문은 크기를 늘리는 방법을 묻습니다. 내가 이미했던 것보다 더 이상 크기를 늘릴 필요가 없다고 생각합니다. 나는 오류가 발생했는지 여부를 알아내어 404 대신 413을 던지기를 원합니다.하지만 실제로 어떻게되었는지 알 수있는 방법을 모르겠습니다. – Alexander

답변

1

blog에 따르면, 상태 코드 404.13는 HTTP 상태 코드 413.

를 대체하기 위해 IIS 7에 도입 하였다, I는 당신이 응답을 유지하는 것이 제안 , 그리고 귀하의 코드에서 404 오류가 실제로 404.13인지 여부를 확인하십시오 오류.

관련 문제