2

ASP.NET コードが大きなファイルをストリーミングしている間、スレッドは完全に拘束されていますか? つまり、8 人が大きなファイルをダウンロードしていて、8 つのスレッドしか使用できない場合、それ以上の要求は処理されないのでしょうか?

いずれにせよ、大きな静的ファイルを保護する別の方法を見つける必要があります。アプリケーション サーバーが IIS や Nginx などを処理する必要がないようにするために、できればユーザーが承認された直後に IIS にサービスを提供させる方法が必要です。マネージ コードにヒットすることなく、より適切に実行できます。

アプリが「X-Accel-Redirect」ヘッダーを応答に入れる場合、Nginxはこれを許可すると思います:http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/。Apache と Lighttpd には同じ機能があります。

何かアドバイス?

4

1 に答える 1

0

ファイルの URL を返すことは適切な解決策です。

asp.net の標準認証プロバイダーを使用して、その URL を持つ権限のないユーザーがファイルをダウンロードするのを防ぐことができます。オンrunAllManagedModulesForAllRequestsにすると ( http://www.iis.net/configreference/system.webserver/modulesを参照)、ユーザーが URL にアクセスしたときにユーザー認証が検証され、承認されている場合はファイルへのアクセスが許可されます。

どちらの場合も、ダウンロードはスレッドをロックせず、実行のみをロックします。maxConnectionsこれが、設定のデフォルト設定が である理由です4294967295。( http://www.iis.net/configreference/system.applicationhost/sites/site/limitsを参照)

于 2012-11-29T00:42:39.540 に答える