即使在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>