O IIS não pode servir determinadas extensões de arquivo

O IIS não pode servir determinadas extensões de arquivo

Estou servindo arquivos .JSON, mas mesmo que o arquivo exista, o IIS continua gerando um erro 404 quando qualquer arquivo é acessado. Tentei renomear um dos arquivos para .JS e funcionou.

Alguma indicação de qual configuração pode causar esse problema?

Responder1

Por padrão, o IIS no W2K3 e superior não exibirá arquivos que não sejam de um tipo MIME conhecido (em vez disso, retornará erros 404).

Você precisa adicionar um tipo MIME ao IIS para permitir que ele sirva esse tipo de arquivo. Você pode configurá-lo no nível do site ou no nível do servidor.

Para definir isso para todo o servidor:

  • Abra as propriedades do servidor no Gerenciador IIS e clique em Tipos MIME
  • Clique em "Novo". Digite “JSON” para a extensão e “application/json” para o tipo MIME.

Responder2

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 noCabeçalho HTTPaba. Clique noTipos MIMEbotão. Adicione o tipo de arquivo * com o tipo MIME "application/octet-stream".

Para IIS 7: Abra o gerenciador IIS. Clique noservidorou site. Clique duas vezes noTipos MIMEícone de recurso. No painel Ações, clique emAdicionar. Preencha a caixa "Extensão de nome de arquivo" com * e a caixa Tipo MIME com "application/octet-stream".

Responder3

Adicionei o tipo MIME .json- text/jsonao site no IIS para visualizar no navegador como texto.

Responder4

Eu também tive esse problema - e o problema acabou sendo as permissões de arquivo na pasta onde o arquivo json estava armazenado. Eu respondi umpergunta 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.

Então você também tem queadicione o manipulador de mapeamento, e para isso você precisa ter o recurso do Windows chamadoAsp clássico instaladopara lidar com o mapeamento.

Veja como adicionar o manipulador de mapeamento:

  1. Abra o Gerenciador IIS7
  2. Vá para as propriedades do servidor IIS (ou apenas do site, se você não quiser uma configuração global)
  3. Clique emHandler Mappings
  4. Clique emAdd a Script Map
  5. Insira as propriedades:
    • Caminho da solicitação:*.json
    • Executável:C:\WINDOWS\system32\inetsrv\asp.dll
    • Nome: JSON(você pode chamá-lo do que quiser)
  6. Clique em OK e pronto. Ele deve começar a funcionar e você não precisa redefinir o IIS.

Além disso, algumas pessoas dirão para você usar `application/x-javascript' como aplicativo do tipo MIME, mas JSON não é javascript,por si só(istoéum subconjunto, no entanto) e, portanto, deveria ser 'application/json', pois é o tipo de mídia registrado pela IANA para JSON.

informação relacionada