Изменить корень файла для StaticFileHandler - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть веб-проект ASP.NET, который (помимо прочего) обслуживает некоторые статические файлы.По умолчанию платформа предполагает, что все пути к файлам относятся к местоположению веб-проекта.Однако мне бы хотелось, чтобы фактический корень загружался из пользовательского параметра в Web.config (например, "C:\MyStaticFiles\").

Есть ли способ изменить то, что StaticFileHandler считает корневым каталогом сервера?Если нет, есть ли простой способ реализовать IHttpHandler, который внесет это изменение и передаст остальную часть работы обычному StaticFileHandler?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

По соображениям производительности лучше использовать переписывание URL, а не связываться с HttpHandler. StaticFileHandler не так быстр, как IIS. Ваш собственный обработчик будет в 10 раз медленнее, чем StaticFileHandler, и, если вы не очень, действительно хороший инженер, он, вероятно, утечет (или неправильно изменит) память.

Вы можете вызвать context.RewritePath в событии BeginRequest (или PostAuthorizeEvent, если вы используете авторизацию URL) вашего HttpModule или HttpApplication, чтобы переписать выбранные типы файлов.

0 голосов
/ 02 ноября 2011

Я думаю, из соображений производительности не стоит создавать разные пути для статических ресурсов. Они могут обслуживаться IIS напрямую без какой-либо обработки ASP.NET, если они находятся в папке веб-сайта.

...