O IIS não atende a determinadas extensões de arquivo

2

Eu tenho este problema estranho no servidor Win 2k3 e IIS:

Iis tem vários sites, em um deles eu preciso criar um subdir e configurá-lo como aplicativo da web. Eu notei que se eu criar um novo diretório e colocar algum arquivo .js / .txt nele, eles não serão servidos pelo iis (IE dá um erro que o Internet Explorer não pode exibir a página da Web).

Se eu colocar os mesmos arquivos no subdiretório de outro site antigo, ele será exibido corretamente.

Ao farejar o tráfego, vi que estou respondendo ao estado de conexão 200 e, em seguida, descartando completamente qualquer conexão

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

Se eu renomear o arquivo prova.txt no prova.asp, por exemplo, mostrando sem problemas, por isso não deve ser problema de permissões.

Depois de fazer algumas pesquisas, descobri que isso pode ser causado pela falta de tipos mime, que verifiquei .txt e .js estão presentes e são servidos pelo aspnet_isapi.dll. E aí vem outra coisa estranha: se eu remover o mapeamento mime das propriedades do diretório, ele é servido corretamente, mas a mesma coisa não funciona com o js.

Estou realmente começando a ficar sem idéias, há alguém que tenha alguma dica?

Obrigado antecipadamente.

    
por Alekc 20.01.2010 / 15:02

2 respostas

7

Eu tive o mesmo problema. O IIS faz algo chamado filtragem de tipo MIME. Se não souber o tipo MIME de uma extensão de arquivo específica, ele retornará um erro 404.

No IIS < 7: Abra as propriedades do site (ou servidor). Clique na aba HTTP-Header . Clique no botão Tipos MIME . Adicione o tipo de arquivo * com o tipo MIME "application / octet-stream".

Para o IIS 7 +: Abra o gerenciador do IIS. Clique no servidor ou no site. Clique duas vezes no ícone do recurso Tipos MIME . No painel Ações, clique em Adicionar . Preencha a caixa "File Name Extension" com * e a caixa MIME Type com "application / octet-stream".

O mesmo também pode ser feito no seu arquivo web.config se você estiver criando um aplicativo .NET.

    
por 01.02.2010 / 21:19
1

Como você mapeou essas extensões para aspnet_isapi.dll, agora é necessário informar ao ASP.NET para lidar com elas. Você fez a parte do IIS corretamente.

É um PageHandlerFactory que você precisa definir em seus httpHandlers. Eu encontrei esta página que cobre em profundidade: link .

    
por 20.01.2010 / 16:19

Tags