ASP.Net MVC 5 を使用してアプリケーションを構築しています。大きなファイル (200 MB ではない) をアップロードすると、ブラウザで「接続のリセット」エラーが表示されます。ホスティングは Godaddy によって行われます (Deluxe - 共有ホスティング プラン)。
無数のフォーラムともちろんここを検索しましたが、答えはほとんど常に同じです。
system.web に追加します。
<httpRuntime maxRequestLength="2147483647" executionTimeout="999999"/>
および/または system.webServer に追加:
<security>
<requestFiltering>
<requestLimits maxUrl="32767" maxQueryString="32767" maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
これは Web.config に配置する必要があります (views フォルダーではなくルートにあります)。
私は、maxRequestLenght
とmaxAllowedContentLenght
が同じ単位ではないことを知っています (バイトとキロバイト)。だから私は別の組み合わせ、同じ番号、別のものを試しました...
また、GoDaddy に電話してみて、こちら側で可能かどうか尋ねてみたところ、いいえ、とのことでしたが、次のようなものを含む「.user.ini」ファイルをルート ディレクトリに追加できるとのことでした。
upload_max_filesize=2000M
memory_limit=128M
max_execution_time=99999
post_max_size=2000M
max_input_time=99999
それもうまくいきませんでした...
これがコードです。コントローラーが必要な場合はお尋ねください。ただし、ブラウザーにタイムアウトがあるため、要点がわかりません。
意見:
@using (Html.BeginForm("CreateSingleTune", "Upload", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
...
<div class="form-group">
@Html.Label(Resource.SampleLabel, new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="file" multiple="multiple" data-val="true" data-val-required="@Resource.ImageRequiredErrorMessage" id="SingleTuneViewModel_Sample" name="SingleTuneViewModel.Sample" />
@Html.ValidationMessageFor(model => model.SingleTuneViewModel.Sample, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="@Resource.CreateButton" class="btn btn-primary" />
</div>
</div>
...
}
モデル:
public class SingleTuneViewModel
{
[Required]
[Display(Name = "Title")]
public string Name { get; set; }
[Required]
[Display(Name = "Album")]
public string AlbumName { get; set; }
[Required]
[Display(Name = "Tune")]
public HttpPostedFileBase Tune { get; set; }
[Required]
[Display(Name = "Sample")]
public HttpPostedFileBase Sample { get; set; }
[Display(Name = "Price")]
[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
public decimal UnitPrice { get; set; }
}
誰か助けてくれませんか、私にはアイデアがありません。とてもシンプルに思えます。「チャンク」を使用する唯一のオプションですか?