You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asp.Net MVC与.NET4.0 API求职门户项目中上传大于2MB视频失败问题求助

Hey there, let's work through this large video upload issue step by step. First off, let's clear up your initial doubt: .NET Framework 4.0 absolutely supports the maxRequestLength setting—that's not the root cause here. Let's break down the likely culprits and fixes:

1. Ensure both your API AND MVC project have proper web.config settings

You updated the API's web.config, but your MVC project receives the upload first before forwarding data to the API. If the MVC project doesn't allow large requests, it'll block the upload before your code even runs. Add these settings to your MVC project's web.config too:

<system.web>
  <httpRuntime executionTimeout="108000" maxRequestLength="2147483647"/> <!-- 2GB in KB -->
</system.web>
<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" /> <!-- 2GB in bytes -->
    </requestFiltering>
  </security>
</system.webServer>

2. Check IIS-level request filtering isn't overriding your config

Sometimes IIS server/site-level settings take priority over web.config. Here's how to verify:

  • Open IIS Manager, navigate to your API site
  • Double-click Request Filtering in the site features panel
  • Click Edit Feature Settings on the right-hand toolbar
  • Ensure the Maximum allowed content length (bytes) is set to a value larger than your video files (e.g., 2147483647 for 2GB)

3. Adjust API message size limits (critical for ASP.NET Web API)

If your API is built with ASP.NET Web API (not WCF), default message size limits are far smaller than 2GB. Add this to your API's Global.asax Application_Start method:

protected void Application_Start()
{
    // Increase limits for large file transfers
    GlobalConfiguration.Configuration.MaxReceivedMessageSize = 2147483647;
    GlobalConfiguration.Configuration.MaxBufferSize = 2147483647;
    GlobalConfiguration.Configuration.MaxBufferPoolSize = 2147483647;
    
    // Rest of your startup code...
}

If it's a WCF Web API, update binding settings in your API's web.config:

<system.serviceModel>
  <bindings>
    <webHttpBinding>
      <binding name="LargeFileBinding" 
               maxReceivedMessageSize="2147483647" 
               maxBufferSize="2147483647" 
               maxBufferPoolSize="2147483647">
        <readerQuotas 
          maxDepth="32" 
          maxStringContentLength="2147483647" 
          maxArrayLength="2147483647" 
          maxBytesPerRead="4096" 
          maxNameTableCharCount="16384" />
      </binding>
    </webHttpBinding>
  </bindings>
  <services>
    <service name="YourApiNamespace.YourApiService">
      <endpoint address="" 
                binding="webHttpBinding" 
                bindingConfiguration="LargeFileBinding" 
                contract="YourApiNamespace.IYourApiService" 
                behaviorConfiguration="webHttpBehavior" />
    </service>
  </services>
</system.serviceModel>

4. Fix the inefficient file transfer logic in your MVC code

Right now, you're converting the entire video to a byte array, serializing it to JSON, and sending it to the API. For large files, this is extremely memory-heavy and can cause timeouts or out-of-memory errors (which trigger that 500 error). Instead:

  • In your MVC controller, use MultipartFormDataContent to send the file stream directly to the API
  • In your API action, use MultipartFormDataStreamProvider to receive the file without loading it all into memory

5. Get the actual 500 error details

The generic error message isn't useful. Check these sources for the real exception:

  • Look in the Windows Event Viewer (Windows Logs > Application) for errors logged by your API
  • Add exception logging to your API's Global.asax Application_Error method to capture the full stack trace
  • Temporarily enable detailed errors in your API's web.config:
    <system.web>
      <customErrors mode="Off" />
    </system.web>
    <system.webServer>
      <httpErrors errorMode="Detailed" />
    </system.webServer>
    

Start with verifying both web.configs and IIS settings—those are the most common fixes for this issue. Then use the detailed error logs to narrow down any remaining problems.

内容的提问来源于stack exchange,提问作者Soumik Mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:52:38