IIS не обслуживает некоторые расширения файлов

IIS не обслуживает некоторые расширения файлов

У меня возникла странная проблема на сервере Win 2k3 и IIS:

У Iis есть несколько сайтов, в одном из них мне нужно создать подкаталог и настроить его как веб-приложение. Я заметил, что если я создам новый каталог и положу в него какой-нибудь файл .js/.txt, то они не будут обслуживаться iis (IE выдает ошибку Internet Explorer не может отобразить веб-страницу).

Если я поместлю те же файлы в подкаталог другого старого сайта, они будут отображаться правильно.

Просматривая трафик, я увидел, что IIS отвечает состоянием соединения 200, а затем полностью разрывает любое соединение.

http://domain.com/test2/prova.txt

GET /test2/prova.txt HTTP/1.1
Host: domain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK

Например, если я переименую файл prova.txt в prova.asp, он отобразится без проблем, так что проблема не должна быть в правах доступа.

После некоторых исследований я выяснил, что это может быть вызвано отсутствием типов mime, я проверил, что .txt и .js присутствуют и обслуживаются aspnet_isapi.dll. И вот еще одна странность: если я удаляю сопоставление mime из свойств каталога, оно обслуживается правильно, но то же самое не работает с js.

У меня действительно заканчиваются идеи. Может, кто-нибудь подскажет?

Заранее спасибо.

решение1

У меня была та же проблема. IIS делает что-то под названием MIME-фильтрация. Если он не знает MIME-тип определенного расширения файла, он возвращает ошибку 404.

В IIS <7: Откройте свойства сайта (или сервера). Нажмите наHTTP-заголовоквкладка. Нажмите наMIME-типыКнопка. Добавьте тип файла * с типом MIME "application/octet-stream".

Для IIS 7+: Откройте диспетчер IIS. Нажмите кнопкусерверили веб-сайт. Дважды щелкнитеMIME-типыЗначок функции. В панели «Действия» щелкнитеДобавлять. В поле «Расширение имени файла» введите *, а в поле Тип MIME — «application/octet-stream».

То же самое можно сделать в файле web.config, если вы создаете приложение .NET.

решение2

Поскольку вы сопоставили эти расширения с aspnet_isapi.dll, теперь вам нужно указать ASP.NET обрабатывать их. Вы правильно выполнили часть IIS.

Это PageHandlerFactory, который вам нужно установить в httpHandlers. Я нашел эту страницу, которая подробно описывает это:http://aspnet.4guysfromrolla.com/articles/011404-1.aspx.

Связанный контент