0

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 フォルダーではなくルートにあります)。

私は、maxRequestLenghtmaxAllowedContentLenghtが同じ単位ではないことを知っています (バイトとキロバイト)。だから私は別の組み合わせ、同じ番号、別のものを試しました...

また、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; }

}

誰か助けてくれませんか、私にはアイデアがありません。とてもシンプルに思えます。「チャンク」を使用する唯一のオプションですか?

4

0 に答える 0