2

制限されたファイルへのアクセスをユーザーに許可する必要があります。この操作に一般的な webhandler を使用することを検討していました。

ファイルはかなり大きくなり、少なくとも 1.5​​GB になります。

これらのファイルは、可能な限り RAM/メモリの使用量を抑えて提供する必要があります。

現時点では、これを解決策として検討しています。

request.ContentType = "text/plain";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
int buffersize = 65536;
byte[] buffer = new byte[buffersize];
using (StreamReader reader = new StreamReader(filename))
{
   int count = 0;
   while (true)
   {
        int count = reader.Read(buffer, 0, buffersize);
        dataStream.Write(buffer, 0, count);
        if (count < buffersize) break;
   }
}

これは私たちにとってうまくいくでしょうか?

より良い解決策はありますか?

何に注意する必要がありますか?

IIS を介してファイルを直接共有することはできません。ハンドラーは、誰がアクセスできるか、誰がアクセスできないかを制御する必要があります。

4

1 に答える 1

4

メソッドを使用する必要がありますHttpResponse.TransmitFile。それはメモリ内のファイルをバッファリングしませんが、それでも必要なすべてのコントロールを取得します。

于 2013-03-12T08:50:37.273 に答える