【解決方法】ASP.NET C# Web アプリケーションで webclient クラスを使用して大きなファイルをアップロードできない

プログラミングQA


このコードを使用してファイルをウイルスチェックサイトにアップロードする必要があります

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"]);
}

このコードは小さいファイルでは正常に動作しますが、50 MB サイズのファイルをアップロードしようとすると例外が発生します。

リモート サーバーがエラーを返しました: (413) 要求エンティティが大きすぎます。

このエラーを調べて、maxAllowedContentLength と maxRequestLength の値を 2147483647 に増やしてみました。

役に立ちませんでした。 何をしても、常に上記のエラーが発生します

WebClient クラスを使用して大きなファイルをサイトにアップロードする方法はありますか? ASP.NET Web フォームに大きなファイルをアップロードする他の方法はありますか?

事前にどうもありがとうございました

私が試したこと:

このエラーを調べて、maxAllowedContentLength と maxRequestLength の値を 2147483647 に増やしてみました。

解決策 1

エラーメッセージはかなり明確です。 サーバーは、50MB 未満のアップロードのみを許可するように構成されています。 コードではそれについて何もできません。

サーバーのコードと構成を制御しない場合、この問題を解決するためにできることは何もありません。

コメント

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