0

私は、ユーザーがドキュメントをアップロード (およびダウンロード) できるようにする ASP.NET Web アプリケーションを使用しています。アップロードもうまく機能していませんが、ダウンロード ダイアログに重大な問題があり、その理由がわかりません。

これらのファイルは、コードと同じマシン上にない共有に保存されます。ファイル オーバーロード ファイル (場所、mimetype、表示名) を使用して、FilePathResult 経由でダウンロードを送信しようとしています。

ユーザーがダウンロード リンクをクリックすると、新しい空白のページが開き、ロード アニメーションが開始されますが、大きなファイル (最大 25 MB) の場合は、保存/ダウンロード ダイアログが表示される前に数分間これに固執します。実際にファイルをダウンロードするのに約 5 秒かかります。

私は探し続けましたが、これまでに見つけた唯一のことは、FilePathResult がファイルをメモリにバッファリングするのではなく、ダウンロードのためにユーザーにファイルを渡すだけであるということです。

わずか 24 mb のファイルでダウンロード ダイアログを表示するのに、なぜ適切な (時間指定された) 5 分 45 秒かかるのかについて、誰か洞察がありますか? IIS または asp が、本来あるべきではない場所にドキュメントをプリロードしているように感じます。たとえそうであっても、このような小さなファイルには時間がかかりすぎます...

参考のため:

        public FilePathResult DownloadFile(int id)
        {
            var file = _fileService.GetByIdForUser(id, base.LoggedInUserId);

            return File(file.Location, UploadedFileManager.DetermineContentTypeFrom(file.Extension), file.Name);
        }
4

1 に答える 1

0

「修正」というほどのものではありませんが、他の誰かが同様の問題を抱えている場合に備えて、これを追加する必要があると考えました.

私たちのネットワーク スイッチの 1 つを管理している担当者がいくつかの設定を台無しにしていたことが判明し、それを修正するためにサポート チケットを提出する必要がありました。これが完了すると、すべてが正常に機能しました。

とにかく、問題は、彼らが私たちのハードウェアを「半二重」(一方向通信)で実行していたという事実にありました。私はネットワークの専門家ではありません。これが問題だと言われただけです。他の誰かがこの問題を抱えている場合は、ハードウェアの設定を確認するように思い出させてくれることを願っています.

于 2012-10-26T20:12:56.423 に答える