2011-12-22 25 views
5

サブディレクトリ(Areas \ Administration \ Views)のweb.config(20MBごと)にmaxRequestLengthとmaxAllowedContentLengthの両方を設定しました。私は管理の中でファイルをアップロードしています。大きなファイル(この場合〜9MB)をアップロードしようとすると、「最大リクエスト長を超えました」と表示されます。私は2つの設定をルートに移動する場合、それは動作しますが、私はそうしたくないでしょう。助言がありますか?サブフォルダweb.configでASP.NET MVCがmaxRequestLengthとmaxAllowedContentLengthを無視していますか?

テクノロジ:Windows Server 2008 Enterprise上のASP.NET、.NET 4.0、MVC 3、およびIIS 7テクノロジ。

スタックトレース:あなたのWebConfigファイルで

[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

を、それを受け入れてください。答えとして。それ以外の場合は、コメントを投稿して問題の詳細を教えてください。 –

答えて

7

は、あなたがパスでそのよう<場所>タグを宣言する必要があります:私の答えはあなたを助けている場合

<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

'VideoController'という名前のコントローラと' Save'というアクションがある場合、** path **を 'path =" Video/Save "'に設定する必要がありますか?私はASP.NET Web APIについて話しています。 –

+0

WebAPIパスが不明です。このソリューションはMVC用です。多分あなたは "api/controller/action"のようなものを試すことができますか? –

関連する問題