WebRole で大きなサイズのファイルをアップロードするための設定メモ

調査用に Blob ストレージを使った簡単なアプロダを作って Windows Azure にデプロイしたけど、いざ 100MB 超のファイルをアップロードしようとするとエラー。


ASP.NET ではアップロードできるファイルのサイズが制限されている(デフォルトでは 4MB)ので、下記のように、Web.config に 120MB までアップロードできるように構成していました。それなのに…。

<configuration>
    ...
    <location path="Default.aspx">
        <system.web>
            <!--POSTの最大値を120BB、実行タイムアウトを60分に設定-->
            <httpRuntime maxRequestLength="120000" executionTimeout="3600"/>
        </system.web>
    </location>
    ...
</configuration>

これだけでは不十分みたい。(´・ω・`)ショボーン


Twitter で愚痴ってたら、アドバイスもらいました。



下記のように、requestLimitsMaxAllowedContentLength も設定する必要があるのか。常識なんですかね。ASP.NET 開発経験ゼロなので知らなかったです。

<configuration>
  ...
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true" />
      <security>
          <requestFiltering>
              <requestLimits maxAllowedContentLength="120000000"/>
          </requestFiltering>
      </security>
  </system.webServer>
  ...
</configuration>

これでアップロードできるようになりました。orz_yuki さんに感謝!