Estou servindo arquivos .JSON, mas, embora o arquivo exista, o IIS continua lançando um erro 404 quando qualquer arquivo é acessado. Tentei renomear um arquivo para .JS e funciona.
Qualquer ponteiro que configuração pode causar esse problema?
Estou servindo arquivos .JSON, mas, embora o arquivo exista, o IIS continua lançando um erro 404 quando qualquer arquivo é acessado. Tentei renomear um arquivo para .JS e funciona.
Qualquer ponteiro que configuração pode causar esse problema?
Respostas:
Por padrão, o IIS no W2K3 e superior não veiculará arquivos que não sejam do tipo MIME que ele conhece (retornando erros 404).
Você precisa adicionar um tipo MIME ao IIS para permitir que ele atenda a esse tipo de arquivo. Você pode configurá-lo no nível do site ou no servidor.
Para definir isso para todo o servidor:
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 guia Cabeçalho HTTP . 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 site. Clique duas vezes no ícone do recurso Tipos MIME . No painel Ações, clique em Adicionar . Preencha a caixa "Extensão de nome de arquivo" com * e a caixa MIME Type com "application / octet-stream".
Eu adicionei o tipo MIME .json
- text/json
ao site no IIS para exibir no navegador como texto.
Para consolidar respostas em mais uma resposta geral:
Aí vem a ressalva:
Se você estiver enfrentando esse tipo de problema, abra os arquivos de log da web do site e consulte o código de sub-status (por exemplo, 404 3) para determinar exatamente por que o site não está exibindo conteúdo para o IIS 6 ou
no IIS 7.
Eu também tive esse problema - e o problema acabou sendo permissões de arquivo na pasta em que o arquivo json estava armazenado. Eu respondi uma pergunta semelhante aqui .
Todas essas pessoas estão corretas ao dizer que você precisa adicionar o tipo MIME.
O tipo MIME habilita a extensão do arquivo no servidor e o Mapping Handler informa ao IIS o que fazer com ele.
Portanto, você também precisa adicionar o Mapping Handler e, para isso, deve ter o recurso do Windows chamado Classic Asp instalado para lidar com o mapeamento.
Handler Mappings
Add a Script Map
*.json
C:\WINDOWS\system32\inetsrv\asp.dll
JSON
(você pode chamá-lo como quiser)Além disso, algumas pessoas dirão para você usar `application / x-javascript 'como o aplicativo do tipo mime, mas o JSON não é javascript, por si só ( é um subconjunto, no entanto) e, portanto, deve ser' application / json ' , como é o tipo de mídia registrado pela IANA para JSON.
Verifique também a Solicitação de filtragem no IIS. Se ".json" estiver lá e bloqueado, nada mais funcionará.