2011-12-22 14 views
5

Ho entrambi maxRequestLength e maxAllowedContentLength impostati in web.config (20 MB ciascuno) in una sottodirectory (ovvero Aree \ Amministrazione \ Visualizzazioni). Ho caricato i file all'interno dell'amministrazione e quando provo a caricare un file di grandi dimensioni (~ 9 MB in questo caso) ottengo "La lunghezza massima richiesta superata". Se sposto le due impostazioni alla radice funziona, ma preferirei non farlo. Eventuali suggerimenti?ASP.NET MVC sono maxRequestLength e maxAllowedContentLength ignorati in una sottocartella web.config?

Tecnologia: ASP.NET, .NET 4.0, MVC 3 e IIS 7 su Windows Server 2008 Enterprise.

dello stack:

[HttpException (0x80004005): Maximum request length exceeded.] 
    System.Web.HttpRequest.GetEntireRawContent() +11472119 
    System.Web.HttpRequest.GetMultipartContent() +232 
    System.Web.HttpRequest.FillInFormCollection() +345 
    System.Web.HttpRequest.get_Form() +157 
    Microsoft.Web.Infrastructure.DynamicValidationHelper.<>c__DisplayClass12.<ReplaceCollection>b__e() +63 
    Microsoft.Web.Infrastructure.DynamicValidationHelper.<>c__DisplayClass12.<ReplaceCollection>b__11() +20 
    Microsoft.Web.Infrastructure.DynamicValidationHelper.DeferredCountArrayList.get_Count() +20 
    System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +34 
    System.Web.HttpRequest.get_Form() +212 
    System.Web.Mvc.HttpRequestExtensions.GetHttpMethodOverride(HttpRequestBase request) +160 
    System.Web.Mvc.AcceptVerbsAttribute.IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) +55 
    System.Linq.Enumerable.All(IEnumerable`1 source, Func`2 predicate) +149 
    System.Web.Mvc.ActionMethodSelector.RunSelectionFilters(ControllerContext controllerContext, List`1 methodInfos) +428 
    System.Web.Mvc.ReflectedControllerDescriptor.FindAction(ControllerContext controllerContext, String actionName) +140 
    System.Web.Mvc.ControllerActionInvoker.FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, String actionName) +27 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +148 
    System.Web.Mvc.Controller.ExecuteCore() +159 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375 
+1

Se la mia risposta ti sta aiutando, si prega di accettarlo come risposta. Altrimenti, pubblica un commento per dirci maggiori informazioni sul tuo problema. –

risposta

7

Nel file WebConfig, è necessario dichiarare la <posizione> tag con il percorso in questo modo:

<location path="controller/action"> 
    <system.web> 
    <!-- maxRequestLength is in kilobytes (KB) --> 
    <httpRuntime maxRequestLength="5120" /> <!-- 5MB --> 
    </system.web> 
    <system.webServer> 
    <security> 
     <requestFiltering> 
     <!-- maxAllowedContentLength is in bytes (B) --> 
     <requestLimits maxAllowedContentLength="5242880"/> <!-- 5MB --> 
     </requestFiltering> 
    </security> 
    </system.webServer> 
</location> 
+0

vuoi dire se ho un controller chiamato 'VideoController' e un'azione chiamata' Salva', quindi devo impostare il ** percorso ** a 'percorso =" Video/Salva "'? Sto parlando di API Web ASP.NET. –

+0

Non sono sicuro del percorso WebAPI. Questa soluzione era per MVC. Forse potresti provare qualcosa come "api/controller/action"? –

Problemi correlati