Protegendo downloads grandes usando C # e IIS 7

Aqui está a configuração:

1 servidor web executando um aplicativo C # no qual meus usuários (armazenados em um banco de dados MySQL no referido servidor) se autenticam.

1 servidor de arquivos executando o software TBD. No passado, usei o lighttpd e o mod_secdownload para proteger os arquivos nos servidores de arquivos, e funcionou bem (ish).

Gostaria de saber se existe uma maneira de fazer isso usando uma combinação de IIS e C # .Net. Todos os meus outros servidores estão executando esse combo, e isso simplificaria um pouco as coisas se eu pudesse fazer o mesmo pelos servidores de arquivos. O kicker é que os arquivos que estão sendo hospedados são grandes. Eu já vi exemplos de pessoas usando um aplicativo pequeno para criar um objeto FileStream, ler o arquivo e criar a resposta HTTP manualmente. Isso funciona, mas, como estou trabalhando com arquivos com mais de 500 MB, é lento como o diabo. E potencialmente terei 300 usuários acessando a caixa de uma só vez, solicitando arquivos. Isso não é bom.

Então, alguém vê uma maneira de contornar isso? Estou tentando criar um sistema mais transparente e, se todos os meus servidores estiverem executando o mesmo software / hardware, isso tornará minha vida muito mais simples. Agradecemos antecipadamente por qualquer conselho que você der!

questionAnswers(4)

yourAnswerToTheQuestion