最大アップロードサイズが100MBのASP.NET MVC3 Webアプリケーション(私が書いていない)で作業しています。今、このWebアプリケーションは、顧客のためにサーバマシンにインストールされるので、この値の最大アップロードサイズが各顧客に対して設定可能であればいいでしょう。必要に応じて、Webアプリケーションのweb.configを編集するためのアクセス権があります。web.configからシステム値を読み込み、ASP.NET MVC C#メソッドで使用する方法
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
また別の値がここにあります似ているように表示されます:
<system.web>
<httpRuntime maxRequestLength="104857600" executionTimeout="360" />
</system.web>
104857600そのバイトは、100MBのファイルのように見える
は今そうのようなweb.configファイルに値がありますアップロードの上限。しかし、価値を変えると、これは権威ある価値ではなく、新しい限界に従わなかったことがわかりました。そこで、C#コードのどこか他の部分がハードコードされた値public const double MaxContentSize = 104857600
であり、別のC#メソッドがその値を使用してAjaxファイルのアップロードを受け入れる/拒否したことが判明しました。
私がしたいと思うのは、コード内のハードコードされた番号を置き換えて、web.configの値から読み込むことです。 Webサイトを展開するときに、少なくとも誰でもweb.configでその値を変更できます。
このようなことはできますか?
MaxContentSize = ConfigurationManager.systemWeb.httpRuntime['maxRequestLength'];
私は、web.configのappSettingsを使用していくつかの例を見てきました。
<appSettings><add key="MySetting" value="104857600" /></appSettings>
はそれが好きアクセス:
ConfigurationManager.AppSettings["MySetting"]
をしかし、それはそこにカスタム値を追加することを意味するであろうと、今、私たちはweb.configファイルでそれを変更するには3ヶ所を持っていると思います。誰でもそれを正しく行う方法を知っていますか?
感謝
お礼この作品!これには、 'using System.Configuration;'と 'using System.Web.Configuration;'の2つの名前空間が必要です。 httpRuntimeセクションが存在しない場合はエラー処理があるので、私はあなたの答えを受け入れました。これはnice値のデフォルト値に戻ります。 Web.configの ' 'セクション全体を削除しようとしましたが、ファイルのアップロードがこのコードに到達する前に完全に失敗してしまったので、間違いなく必要です。だから、もし私がデフォルト値のコードを取り除くと、それは2行になります。 –
zuallauz