Estou desenvolvendo um projeto web ASP MVC. Agora eu tenho um requisito que me obriga a implantar em um IIS7 no meio do desenvolvimento (para verificar alguns recursos). Estou recebendo a mensagem de erro acima mencionada sempre que tento digitar o URL do site. (Nota: máquina de desenvolvimento: Vista Home Premium, IIS7)
O que eu fiz até agora:
Editado o arquivo HOSTS (C: \ WINDOWS \ system32 \ drivers \ etc \ hosts).
Coloque dois domínios nele (127.0.0.1 domain1.com e 127.0.0.1 domain2.com).
Criou uma pasta c: \ websites \ dirOfApplication e implantada no Visual Studio 8 para esta pasta.
No IIS7, criou um novo site com o nome do host domain1.com e a pasta do aplicativo acima.
Digitar o endereço domain1.com no navegador da Web resulta no erro acima (Erro HTTP 403.14 - Proibido - O servidor da Web está configurado para não listar o conteúdo deste diretório.)
Acho que estou perdendo alguma coisa, mas não sei o que! Tentou implantar os arquivos System.Web.Mvc, System.Web.Abstraction e System.Web.Routing com o mesmo resultado. Sempre que tento pressionar F5 e executar o aplicativo, ele funciona bem!
fonte
Respostas:
Talvez seja útil para alguém: depois de converter meu aplicativo no MVC 4 com o .NET Framework 4.5 e instalar a estrutura no meu servidor com o IIS 7.0, encontrei o mesmo erro 'proibido' mencionado na pergunta. Tentei todas as opções descritas acima sem sucesso, quando notei o
estava faltando no meu web.config. Depois de adicionar isso, tudo funcionou. Simples, mas fácil de esquecer ...
EDITAR:
Obviamente, a solução acima funcionará, mas é realmente um desperdício de recursos. Eu acho que é melhor adicionar o módulo de roteamento, como apontado por Chris Herring nos comentários.
fonte
runAllManagedModulesForAllRequests="true"
do meu Web.config. Obrigado por mencionar isso antes de eu passar a noite toda tentando descobrir isso.Respondida no SO aqui , pergunta: 403 - Proibido na implantação básica do MVC 3 no iis7.5
Corra
aspnet_regiis -i
. Muitas vezes, descobri que você precisa fazer isso para que os aplicativos 4.0 funcionem. Abra um prompt de comando como umAdministrator
(clique com o botão direito do mouse no ícone do prompt de comando e selecione Executar como Administrador):Depois de instalado e registrado, verifique se o aplicativo está usando um pool de aplicativos definido como .NET 4.0.
UPDATE: Acabei de encontrar um problema com este comando. O uso de -i atualizou todos os pools de aplicativos para o ASP.NET 4.0.
Usar
aspnet_regiis -ir
instala a versão do ASP.NET, mas não altera nenhum aplicativo Web para esta versão. Você também pode revisar a opção -iru.fonte
Eu também encontrei esse erro. Toda a configuração e permissões estavam corretas. Mas eu esqueci de copiar o Global.asax para o servidor, e foi isso que deu o erro 403.
fonte
É por ter muita certeza do que você (eu) está fazendo!
Na minha máquina, o IIS 7 está instalado, mas o componente ASP.NET necessário (Painel de Controle-> Programas-> Ativar / Desativar-> ASP.NET) não estava.
Então, instalar isso resolveu o problema
fonte
Eu tive o mesmo problema. Este artigo de suporte da Microsoft o corrigiu para mim.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404 erros quando tentam processar URLs sem extensão no iis-7-e-iis-7.5
Na caixa de diálogo "Ativar ou desativar os recursos do Windows" do aplicativo "Programas e Recursos" do Painel de Controle do Windows, execute as seguintes etapas:
-ou-
A reativação do módulo HTTP Error Redirection ou do módulo Static Content Compression garante que o ASP.NET e o IIS sincronizem corretamente os eventos do pipeline HTTP. Isso permite que o módulo de roteamento de URL processe URLs sem extensões.
fonte
Tente aplicar as seguintes configurações mostradas abaixo:
1) Dê a permissão necessária ao
IIS_IUSRS
usuárioIIS Server
(clique com o botão direito do mouse no site e depois em Editar permissões> Segurança).2) Se você usar
.NET Framework 4
, verifique se a versão do .NET Framework estáv4.0
naApplication Pool
que seu site usa.3) Abra o prompt do Commanp
administrator
e execute oiisreset
comando para reiniciarIIS Server
.Espero que isto ajude...
fonte
No meu caso, a seguinte abordagem me ajudou:
aspnet_regiis -i
noWindows\Microsoft.Net\Framework
Adicionando módulos ao system.webServer
fonte
Verifique também, se você estiver executando o x64, se você ativou aplicativos de 32 bits nas configurações do pool de aplicativos
fonte
Na opção Desmarcar "Pré-compilar durante a publicação" - eu estava recebendo o erro 403.14 em um serviço da Web que acabei de escrever no VS2015, então o reescrevi no VS2013 e estava recebendo o mesmo erro. Nos dois casos, eu tinha "Pré-compilar durante a publicação". Desmarquei, mas ainda estava recebendo o erro. No meu caso, eu também tinha " Excluir todos os arquivos existentes antes da publicação ", mas não estava excluindo tudo do diretório de destino no servidor antes de copiar os novos arquivos publicados lá. Se você não fizer isso - um arquivo " PrecompiledApp.config " será deixado para trás, causando o problema. Depois de excluir esse arquivo, fiquei com o ouro nas versões VS2013 e VS2015 do meu serviço da web.
fonte
Eu tentei de tudo aqui; nada funcionou. Problema estava no meu
Web.config
arquivo, de alguma forma a ligação de assembly dependente foi alterada do mínimo1
para o mínimo0
.fonte
Observe que algumas vezes errado
Managed pipeline mode
causa esse erro. Existem duas opções para selecionarintegrated
eclassic
.fonte
Como corrigir "Erro HTTP 403.14 - Proibido O servidor Web está configurado para não listar o conteúdo deste diretório"
Este erro ocorre quando você tem o MVC 2+ em execução hospedado no IIS 7+, isso ocorre porque o ASP.NET 4 não estava registrado no IIS. No meu caso, eu estava criando um projeto MVC 3 e hospedando-o no IIS 7.5.
Para corrigi-lo, verifique se você possui o MVC 2 ou superior e o .Net Framework 4.0 instalado, execute um prompt de comando como administrador e digite a seguinte linha:
32 bits (x86)
% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir
64 bits (x64)
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir
fonte
Verifique seu arquivo Global.asax . No meu caso, estava vazio.
fonte
Se as principais respostas não funcionarem, procure uma configuração nomeada
PrecompiledApp.config
no diretório de hospedagem e exclua-a, se existir. Este arquivo impede que IISExpress e LocalIIS funcionem corretamente. (E acho que é um bug) O conteúdo do arquivo no meu caso foi:E tenho 100% de certeza de que foi o problema do meu caso, pois tentei tudo em 2 horas e testei várias vezes com essa configuração.
Mais uma coisa: você não pode usar
aspnet_regiis
nas versões mais recentes do Windows e IIS, então tentefonte
Painel de controle> ativar ou desativar os recursos do Windows> Servidor Web> Desenvolvimento de Aplicativos
Verifique o ASP.NET
fonte
Eu também encontrei esse mesmo erro, apesar de todas as soluções fornecidas pelos seguintes motivos:
fonte
No meu caso, web.config e todos os arquivos, exceto a pasta / bin, estavam ausentes (não copiados de alguma forma).
Bobo, mas essa foi a última coisa que verifiquei.
fonte
Recentemente, tive esse erro e descobri que o problema foi causado pelo recurso "Redirecionamento HTTP" não estar ativado no meu Windows Server. Esta postagem do blog me ajudou a solucionar os problemas para encontrar a resposta (apesar de ser versões mais antigas do Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/06/06/30/system-web-routing-routetable -not-working-with-iis.aspx para servidores mais recentes, vá para Gerenciamento do computador, role para baixo até a função Servidor da Web e clique em
add role services
fonte
Com o projeto ASP.NET com C # 4.5, resolvi esse problema instalando a extensão ASP.NET no Web Platform Installer
fonte
Também mais uma coisa pode ser possível
instale o .net framework 4.0 manualmente
Esta solução é para o IIS7 na janela 7
cmd aberto com privilégios de administração
vá para o diretório "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"
tipo aspnet_regiis.exe -i
chegou ao seu gerenciador de inet digitando o comando run "inetmgr"
atualize seu IIS7
recarregar o site.
fonte
Sei que você teve esse problema em um host interno, mas já havia experimentado esse problema em um host externo e, no meu caso, tinha sua própria resolução, talvez economizasse o tempo de alguém:
Na verdade, meu site foi INTERROMPIDO por algum motivo que atualmente não conheço, para verificar se você tem o mesmo problema, na página principal do WebsitePanel, vá para Web -> Sites e selecione o nome de domínio do seu site na lista , depois disso, no lado direito da página que acabou de abrir, verifique se você vê a palavra INICIADO; caso contrário, se você vê a palavra PARADO, faça com que ela comece novamente. Isso é tudo.
fonte
Sei que esse é um tópico antigo, mas você também pode receber esse erro (quando estiver depurando) se tiver uma pasta com o mesmo nome de uma rota em um controlador.
Por exemplo, se você tiver um UserController, com uma rota chamada / User e também tiver uma pasta na sua solução chamada "User", o IISExpress tentará procurar a pasta em vez de mostrar sua exibição.
fonte
Depois de tentar todas as soluções sugeridas aqui, encontrei outra solução possível: URLScan
O IIS desativou o WebDAV, mesmo no web.config do meu aplicativo, o manipulador e o módulo do WebDAV foram removidos. PUTs ainda retornaram um 403 - Proibido sem nenhuma entrada de log nos logs do IIS. (GET / POST funcionou bem).
Acontece que o IIS tinha um filtro ISAPI ativo (o URLScan) ativado, o que impedia todas as PUTs. Depois de remover o URLScan, funcionou para mim.
fonte
Minha situação era completamente diferente de qualquer uma delas e a mensagem de erro 403: Proibida era um arenque vermelho.
Se sua função Application_Start () no módulo Global.asax tentar acessar o web.config e uma entrada referenciada não estiver lá, o IIS bloqueará e (por algum motivo) lançará a mensagem de erro 403: Proibida.
Verifique se não está faltando uma entrada no arquivo web.config que está tentando ser acessado no seu módulo Global.asax.
fonte
Caso você seja como eu e tenha um aplicativo usando o NHibernate, as respostas acima não resolveram o seu problema.
Você deve olhar para a cadeia de conexão no seu aplicativo; possivelmente no arquivo webconfig para garantir que esteja correto.
fonte
Eu tenho usado o Identity Representate:
Ao acessar o servidor, você deve conceder ao nome de usuário acesso à
Temporary ASP.NET
pasta Arquivos para que ele possa ler / gravar / executar corretamente:C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files
Obviamente, substitua "frameworkversion" e "aspversion" pelas versões que você está usando.
fonte
Etapa 1: selecione o site para o qual o erro HTTP é produzido no IIS e clique em Navegação em diretório, como mostra a imagem abaixo:
Etapa 2: Na janela Navegação de diretório no IIS, clique em Habilitar em ações no lado direito, como mostra o diagrama abaixo:
Agora a Navegação em Diretório está ativada para o site asp.net, basta reiniciar o aplicativo Web no IIS e Navegar no site no navegador e ver o resultado.
fonte
Estou usando: Win Server 2012 R2 / IIS 8.5 / MVC4 / .Net 4.5
Se nenhuma das opções acima funcionou, tente o seguinte:
Isso chutou minha bunda por alguns dias.
fonte
Eu tive esse problema, mas ele foi corrigido facilmente, acessando o Gerenciador de Serviços de Informações da Internet (IIS), clicando duas vezes em Navegação em Diretório e em Ativar.
No meu caso, eu podia acessar arquivos diretamente, mas não conseguia acessar pastas.
fonte
Eu tinha digitado errado o endereço IP em um dígito, o que significava que ele estava indo para um dos meus outros servidores. Muito confuso quando você obtém uma página de erro do .NET, mas da máquina errada!
fonte