0

我正在使用 ASP.Net MVC 5 构建一个应用程序。上传一个大文件时,不是那么大(200MB),浏览器给我一个“连接重置”错误。托管由 Godaddy(豪华-共享托管计划)完成。

我搜索了无数的论坛,当然还有这里,答案几乎总是一样的:

添加到 system.web:

<httpRuntime maxRequestLength="2147483647" executionTimeout="999999"/>

和/或添加到 system.webServer:

<security>
    <requestFiltering>
        <requestLimits maxUrl="32767" maxQueryString="32767" maxAllowedContentLength="2147483647" />
    </requestFiltering>
</security>

它必须放在 Web.config 中(在根目录中,而不是在视图文件夹中)。

我知道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; }

}

有人可以帮忙,我没有想法,看起来很简单。我唯一的选择是使用“块”吗?

4

0 回答 0