Không thể tải lên tệp lớn bằng lớp webclient trong ứng dụng web ASP.NET C#

lập trình

[ad_1]

Tôi cần tải tệp lên trang web kiểm tra vi-rút bằng mã này

C#
public string Scan(string file)
{
    var v = new NameValueCollection();
    v.Add("key", APIKey);
    var c = new MyWebClient() { QueryString = v };
    
    c.Headers.Add("Content-type", "binary/octet-stream");
    ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
    byte[] b = c.UploadFile(scan, "POST", file);
    string json = Encoding.Default.GetString(b);
    var r = ParseJSON(json);
    if (r.ContainsKey("scan_id"))
    {
        return r["scan_id"];
    }
    throw new Exception(r["result"]);
}

Mã này hoạt động tốt với các tệp nhỏ hơn, nhưng khi tôi cố tải lên các tệp có kích thước 50 MB thì tôi gặp ngoại lệ

Máy chủ từ xa trả về lỗi: (413) Thực thể yêu cầu quá lớn.

Tôi đã tra cứu lỗi này và thử tăng các giá trị maxAllowedContentLength và maxRequestLength lên 2147483647

Nó không giúp được gì. Bất kể tôi làm gì, tôi luôn gặp lỗi được đề cập ở trên

Có cách nào để tải tệp lớn lên một trang web bằng lớp WebClient không? Có cách nào khác để tải lên tệp lớn hơn trong Biểu mẫu web ASP.NET không?

Cảm ơn bạn rất nhiều trước

Những gì tôi đã thử:

Tôi đã tra cứu lỗi này và thử tăng các giá trị maxAllowedContentLength và maxRequestLength lên 2147483647

Giải pháp 1

Thông báo lỗi khá rõ ràng. Máy chủ được định cấu hình để chỉ cho phép tải lên dưới 50 MB. Bạn không thể làm bất cứ điều gì về điều đó trong mã của bạn.

Nếu bạn không kiểm soát mã và cấu hình máy chủ thì bạn không thể làm gì để khắc phục sự cố này.

[ad_2]

コメント

タイトルとURLをコピーしました