Acrescentando que, depois que o IIS local tiver uma listagem, na sua próxima implantação, poderá ocorrer um erro de 500 servidores em uma listagem duplicada, para comentar.
Não se esqueça de reiniciar o IIS após a alteração.
ATUALIZAÇÃO: Existem maneiras fáceis de fazer isso no IIS7 e mais recentes. O op pediu especificamente a ajuda do IIS6, então estou deixando esta resposta como está. Mas essa resposta ainda está recebendo muito tráfego, embora o IIS6 seja muito antigo agora. Espero que você esteja usando algo mais novo, então eu gostaria de mencionar que, se você tiver uma versão mais recente do IIS7 ou mais recente, consulte a resposta da @ ProVega abaixo para obter uma solução mais simples para essas versões mais recentes.
Felicidades, mas isso é em um pacote de hospedagem compartilhada sem acesso a qualquer coisa que não web.config ou arquivo de código global
Lea Hayes
Se você não tiver acesso às configurações do IIS 6.0 e o suporte do seu provedor não adicionar o tipo MIME para você, será necessário alternar entre provedores ou para servidores mais recentes com o IIS 7.0 nesse provedor, se eles o oferecerem, para apoiar isso.
John Adams
1
Sim, o ASP.Net pode transmitir o arquivo por meio de um manipulador ASPX ou até mesmo uma página simples, mas você não poderá usar o tipo de arquivo .json na URL, pois não passará essa solicitação para o ASP.Net tempo de execução. Terá que ser algo que passe pelo tempo de execução do ASPX. Se você não tiver acesso às configurações do IIS, terá que ser uma das extensões existentes, como .ASPX. Novamente, a mudança para um servidor com IIS7 oferece muitas soluções mais fáceis e fáceis.
John Adams
1
Reiniciar o pool de aplicativos deve ser suficiente (no meu caso), em vez de reiniciar o IIS completamente.
kltft 27/01
1
@kltft True, uma reinicialização do pool de aplicativos acionará a atualização, mas apenas para esse pool, é claro. Essas etapas incluem alterar a configuração para todos, e tê-las em um nível inconsistente de configurações facilmente levaria a confusão posteriormente. Eu recomendo reiniciar todo o processo iis para segurança e sanidade. Porém, se todos concordarem com os prós / contras, uma reinicialização do pool de aplicativos poderá funcionar.
Jon Adams
211
Se você deseja adicionar manualmente suporte ao seu site, basta adicionar o seguinte ao seu web.config na seção system.webServer :
Atualizou sua resposta para incluir o web.configcaminho completo .
GFoley83 #
Salva-vidas, obrigado :)
Gaurav123
1
Por alguma razão, isso atrapalhou meu site inteiro - o css não funcionou mais!
precisa saber é o seguinte
@ TheJeff - isso aconteceu comigo, mas é porque eu adicionei dois estáticos mimeMap, um para JSON (necessário) e outro para CSV (redundante, presumi que fosse necessário, mas o IISExpress applicationConfig já tinha CSV). Portanto, recebi esse erro a qualquer momento que tentei acessar qualquer arquivo estático: Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv' Depois de remover a duplicata, não há problema.
The Red Pea
1
Isso corrigirá o problema ao executar localmente, mas preste atenção ao pressionar ao vivo. Se o mimeMap já estiver configurado globalmente no IIS, você receberá 500 erros. Simplesmente remova esta peça do seu web.config nesse caso.
Evan
20
A solução é que você precisa adicionar o tipo de extensão de arquivo json nos tipos MIME
Método 1
Vá para IIS, selecione seu aplicativo e encontre tipos MIME
Clique no painel Adicionar da direita
Extensão de nome de arquivo = .json
Tipo MIME = application / json
Depois de adicionar o tipo de arquivo .json em Tipos MIME , reinicie o IIS e tente acessar o arquivo json
Método 2
Vá para web.config desse aplicativo e adicione essas linhas nele
Ao adicionar suporte ao mimetype (como sugerido pelo @ProVega), também é recomendável remover o tipo antes de adicioná-lo - isso evita erros inesperados ao implantar em servidores nos quais já existe suporte para o tipo, por exemplo:
Quando você adiciona apenas o MimeMap, às vezes, remover seus estilos CSS, então, o caminho correto é removê-lo em primeiro lugar, muito obrigado
sgrysoft
Caminho para o arquivo de configuração no arquivo IIS7 C:\Windows\System32\inetsrv\config: applicationHost.config
OO
5
Só tive esse problema, mas tive que encontrar a configuração do IIS Express para que eu pudesse adicionar os tipos MIME. Para mim, ele estava localizado em C:\Users\<username>\Documents\IISExpress\config\applicationhost.confige pude adicionar o "mapa mímico" correto lá.
Pode ser por isso que não está funcionando para mim através do IIS Express. Infelizmente, isso não é algo que eu gostaria de configurar em todas as máquinas de desenvolvimento, então parece que eu recomendo continuar com a extensão .js nos arquivos de configuração do json.
@SimchaKhabinsky Para mim, o web.config não foi suficiente.
Jean-Bernard Pellerin
3
Se o web.config não é suficiente, você pode precisar adicionar esta linha antes do <mimeMap>nó: <remove fileExtension=".json" />. Você não precisa tocar no applicationhost.config (ou machine.config). Dito isto, modificar esses arquivos pode ser útil se você criar novos sites com frequência e não desejar modificar o web.config para cada site. Isso pode funcionar para ambientes de desenvolvimento, mas frequentemente você não pode tocar no machine.config em ambientes de produção, então eu ainda recomendaria fazer a alteração no web.config.
precisa saber é o seguinte
1
Obrigado @ gilly3 - o removeera a chave para mim
harriyott
0
Navegue para C: \ Users \ nome de usuário \ Documents \ IISExpress \ config
Abra applicationhost.config com o Visual Studio ou seu editor de texto favorito.
Procure a palavra mimeMap, você deve encontrar muitos deles.
Respostas:
Adicione o tipo JSON MIME ao IIS 6. Siga as instruções em Configurar tipos MIME do MSDN (IIS 6.0) .
Não se esqueça de reiniciar o IIS após a alteração.
ATUALIZAÇÃO: Existem maneiras fáceis de fazer isso no IIS7 e mais recentes. O op pediu especificamente a ajuda do IIS6, então estou deixando esta resposta como está. Mas essa resposta ainda está recebendo muito tráfego, embora o IIS6 seja muito antigo agora. Espero que você esteja usando algo mais novo, então eu gostaria de mencionar que, se você tiver uma versão mais recente do IIS7 ou mais recente, consulte a resposta da @ ProVega abaixo para obter uma solução mais simples para essas versões mais recentes.
fonte
.ASPX
. Novamente, a mudança para um servidor com IIS7 oferece muitas soluções mais fáceis e fáceis.Se você deseja adicionar manualmente suporte ao seu site, basta adicionar o seguinte ao seu web.config na seção system.webServer :
Isso adicionará uma configuração "local" no IIS. Isso não funciona no IIS6, mas funciona no IIS7 e mais recente.
fonte
web.config
caminho completo .Cannot add duplicate collection entry of type 'mimeMap' with unique key attribute 'fileExtension' set to '.csv'
Depois de remover a duplicata, não há problema.A solução é que você precisa adicionar o tipo de extensão de arquivo json nos tipos MIME
Método 1
Vá para IIS, selecione seu aplicativo e encontre tipos MIME
Clique no painel Adicionar da direita
Extensão de nome de arquivo = .json
Tipo MIME = application / json
Depois de adicionar o tipo de arquivo .json em Tipos MIME , reinicie o IIS e tente acessar o arquivo json
Método 2
Vá para web.config desse aplicativo e adicione essas linhas nele
fonte
Ao adicionar suporte ao mimetype (como sugerido pelo @ProVega), também é recomendável remover o tipo antes de adicioná-lo - isso evita erros inesperados ao implantar em servidores nos quais já existe suporte para o tipo, por exemplo:
fonte
C:\Windows\System32\inetsrv\config
: applicationHost.configSó tive esse problema, mas tive que encontrar a configuração do IIS Express para que eu pudesse adicionar os tipos MIME. Para mim, ele estava localizado em
C:\Users\<username>\Documents\IISExpress\config\applicationhost.config
e pude adicionar o "mapa mímico" correto lá.fonte
<mimeMap>
nó:<remove fileExtension=".json" />
. Você não precisa tocar no applicationhost.config (ou machine.config). Dito isto, modificar esses arquivos pode ser útil se você criar novos sites com frequência e não desejar modificar o web.config para cada site. Isso pode funcionar para ambientes de desenvolvimento, mas frequentemente você não pode tocar no machine.config em ambientes de produção, então eu ainda recomendaria fazer a alteração no web.config.remove
era a chave para mimfonte