天天看點

解決asp.net上傳檔案時檔案太大導緻的錯誤

即使在web.config中添加了節點和設定依然是不行的,還是封包件太大的錯誤,

    <httpModules>

      <add name="UploadHttpModule" type="Brettle.Web.NeatUpload.UploadHttpModule, Brettle.Web.NeatUpload"/>

    </httpModules>

    <httpRuntime executionTimeout="6000000000" maxRequestLength="900000000" useFullyQualifiedRedirectUrl="true" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" maxQueryStringLength="10240"  />

解決方法需要做到以下三個才能解決問題:

1:在web.config檔案中,的configuration節點下的第一個節點添加如下節點:

<configuration>
  <!--解決上傳檔案太大的錯誤 -->
  <configSections>
    <sectionGroup name="system.web">
      <section name="neatUpload" type="Brettle.Web.NeatUpload.ConfigSectionHandler, Brettle.Web.NeatUpload" allowLocation="true" />
    </sectionGroup>
  </configSections>
           

2:在web.config檔案下的system.web的節點下添加如下節點

<system.web>
    <neatUpload useHttpModule="false" maxNormalRequestLength="40960000" maxRequestLength="20971510000" defaultProvider="FilesystemUploadStorageProvider">
      <providers>
        <add name="FilesystemUploadStorageProvider" type="Brettle.Web.NeatUpload.FilesystemUploadStorageProvider, Brettle.Web.NeatUpload"/>
      </providers>
    </neatUpload>
           

3:這個時候你會發現本地是可以上傳成功了,但是在IIS上依舊不行,你需要在IIS中去設定IIS的上傳大小,設定方法如下:

修改IIS的applicationhost.config

檔案位置: %windir%/system32/inetsrv/config/applicationhost.config

找到<requestFiltering>節點,注意requestFiltering節點預設下面是沒有requestLimits 節點的,你需要添加如下節點,當然,如果節點已經存在,則隻需修改

為這個節點添加如下元素:

<requestLimits maxAllowedContentLength="2147483647" />  (上傳的大小将改為2G)

這個時候你會發現已經OK了。

注意:在除了修改IIS檔案的辦法,修改配置檔案也可以,親身體驗過:

<system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxQueryString="10240" maxAllowedContentLength="2147483647" />
      </requestFiltering>
    </security>
           

繼續閱讀