ASP MVC no IIS 7 resulta em: Erro HTTP 403.14 – Proibido

Estou desenvolvendo um projeto web ASP MVC. Agora eu tenho um requisito que me obriga a implantar em um IIS7 inmiddle de desenvolvimento (para verificar alguns resources). Estou recebendo a mensagem de erro mencionada acima sempre que tento digitar o URL do site. (Nota: máquina de desenvolvimento: Vista Home Premium, IIS7)

O que eu fiz até agora:

Editei 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).

Criei uma pasta c: \ websites \ dirOfApplication e implantei a partir do Visual Studio 8 para esta pasta.

No IIS7 criou um novo site com nome de host domain1.com e pasta de aplicativos acima.

Digitar o endereço domain1.com no navegador da Web resulta no erro acima (Erro HTTP 403.14 – Proibido – O servidor Web está configurado para não listar o conteúdo desse diretório).

Acho que estou sentindo falta de algo, mas não sei o quê! Tentei implantar os arquivos System.Web.Mvc, System.Web.Abstraction & System.Web.Routing com o mesmo resultado. Sempre que tento acertar o F5 e executar o aplicativo, tudo funciona bem!

Talvez seja útil para alguém: Depois de converter meu aplicativo para o 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. Eu 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 ignorar …

EDITAR:

É claro que a solução acima funcionará, mas na verdade é um desperdício de resources. Eu acho que é melhor adicionar o módulo de roteamento como apontado por Chris Herring nos comentários.

       

Respondido em SO aqui , pergunta: 403 – Proibido no básico MVC 3 implantar no iis7.5

Execute aspnet_regiis -i . Muitas vezes, descobri que você precisa fazer isso para que os aplicativos 4.0 funcionem. Abra um prompt de comando como um Administrator (clique com o botão direito do mouse no ícone do prompt de comando e selecione Executar como administrador):

 cd \ cd Windows\Microsoft.NET\Framework\v4.xxx.xxx aspnet_regiis -i 

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. Usando -i atualizei todos os pools de aplicativos para o ASP.NET 4.0.

O uso de aspnet_regiis -ir instala a versão do ASP.NET, mas não altera nenhum aplicativo da Web para esta versão. Você também pode querer rever a opção -iru.

Eu também me deparei com esse erro. Toda a configuração e permissions estavam corretas. Mas eu esqueci de copiar o Global.asax para o servidor, e foi isso que deu o erro 403.

É por ter certeza sobre o que você (eu) está fazendo!

Na minha máquina há o IIS 7 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

No meu caso, a seguinte abordagem me ajudou:

  1. aspnet_regiis -i no Windows\Microsoft.Net\Framework

  2. Adicionando módulos ao system.webServer

       ...  

Eu tive o mesmo problema. Este artigo de suporte da Microsoft corrigiu para mim.
https://support.microsoft.com/pt-br/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404-erros-quando-eles-tentativa-para-process-extension-urls-on-iis-7-e-iis-7.5

Na checkbox de diálogo “Ativar ou desativar resources do Windows” do aplicativo “Programas e Recursos” do Painel de Controle do Windows, execute as seguintes etapas:

  1. Navegue até o seguinte nó: Serviços de Informações da Internet -> Serviços da World Wide Web -> Recursos HTTP comuns
  2. Certifique-se de que a opção “HTTP Error Redirection” esteja selecionada.

-ou-

  1. Navegue até o seguinte nó: Serviços de Informações da Internet -> Serviços da World Wide Web -> Recursos de desempenho
  2. Verifique se a opção “Compactação estática de conteúdo” está selecionada. Depois que qualquer opção tiver sido selecionada, clique em “OK” para salvar as alterações.

A reativação do módulo de redirecionamento de erro HTTP ou do módulo de compactação de conteúdo estático garante que o ASP.NET e o IIS sincronizem corretamente os events de pipeline HTTP. Isso permite que o módulo de roteamento de URL processe URLs sem extensões.

Tente aplicar as seguintes configurações mostradas abaixo:

1) Conceda a permissão necessária ao usuário do IIS_IUSRS no IIS Server (clique com o botão direito do mouse no site, em seguida, Editar Permissões> Segurança).

insira a descrição da imagem aqui

2) Se você usar o .NET Framework 4 , verifique se a versão do .NET Framework é v4.0 no Application Pool que o seu site usa.

insira a descrição da imagem aqui

Espero que isto ajude…

Verifique também, se você estiver executando x64, se ativou aplicativos de 32 bits nas configurações do pool de aplicativos

insira a descrição da imagem aqui

Na desmarque “pré-compilar durante a publicação” – eu estava recebendo o erro 403.14 em um serviço da web que eu tinha acabado de escrever no VS2015 então eu reescrevi-lo no VS2013 e estava recebendo o mesmo erro. Nos dois casos eu tive “Precompile During Publishing” em. Eu desmarcada, mas ainda estava recebendo o erro. No meu caso, eu também tinha ” Excluir todos os arquivos existentes antes de publicar “, 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 ” é deixado para trás, o que causa o problema. Depois que eu deletei esse arquivo, fiquei de olho nas versões VS2013 e VS2015 do meu serviço da web.

Por favor note que às vezes errado o Managed pipeline mode causará este erro. Existem duas opções para selecionar integrated e classic .

Como corrigir “Erro HTTP 403.14 – Proibido O servidor Web está configurado para não listar o conteúdo deste diretório”

Esse erro ocorre quando você tem o MVC 2+ em execução no IIS 7+, 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, certifique-se de ter o MVC 2 ou superior e o .Net Framework 4.0 instalados, em seguida, 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

Se as respostas principais não funcionarem, procure por uma configuração chamada PrecompiledApp.config no diretório de hospedagem e exclua-a se ela existir. Esse arquivo impede que o IISExpress e o LocalIIS funcionem corretamente. (E eu acho que é um bug) O conteúdo do arquivo no meu caso foi:

  

E eu sou 100% positivo, esse foi o problema com o meu caso desde que eu tentei tudo em 2 horas e testei várias vezes com essa configuração.

Mais uma coisa: você não pode usar o aspnet_regiis em versões mais novas do Windows e do IIS, então tente

 dism /online /enable-feature /featurename:IIS-ASPNET45 /all 

Eu tentei tudo aqui; nada funcionou. O problema estava no meu arquivo Web.config , de alguma forma, a binding de assembly dependente foi alterada de mínimo de 1 para mínimo de 0 .

         

Eu também encontrei este mesmo erro, apesar de todas as soluções fornecidas pelos seguintes motivos:

  • DLLs ausentes
  • A cadeia de conexão do database aponta para um servidor inacessível.

Verifique seu arquivo Global.asax . No meu caso, estava vazio.

No meu caso web.config e todos os arquivos, exceto para a pasta / bin, estavam faltando (não copiados de alguma forma).
Bobo, mas essa foi a última coisa que eu verifiquei.

Recentemente tive esse erro e descobri que o problema foi causado pelo recurso “HTTP Redirection” não está habilitado no meu Windows Server. Este post me ajudou a solucionar problemas para encontrar a resposta (apesar de ser versões mais antigas do Windows Server): http://blogs.msdn.com/b/rjacobs/archive/2010/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 function Servidor da Web e clique em add role services

Eu tenho usado o Identity Impersonate:

    

Ao empurrar para cima para o servidor você tem que dar o nome de usuário access à pasta Temporary ASP.NET Files para que ele possa ler / escrever / executar corretamente:

C:\Windows\Microsoft.NET\"frameworkversion"\"aspversion"\Temporary ASP.NET Files

Obviamente, substitua “frameworkversion” e “aspversion” pelas versões que você está usando.

Eu estou usando: Win Server 2012 R2 / IIS 8.5 / MVC4 / .net 4.5

Se nenhum dos itens acima funcionou, tente isto:

Desmarque a opção “Pré-compilar durante a publicação”

Isso chutou minha bunda por alguns dias.

Com o projeto ASP.NET com C # 4.5, resolvi esse problema instalando a extensão ASP.NET no Web Platform Installer

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 administração previleges

vá para o diretório “C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319”

tipo aspnet_regiis.exe -i

cheguei ao seu gerente inet digitando o comando run “inetmgr”

atualize seu IIS7

recarregue o site.

Eu tive esse problema, mas foi corrigido facilmente, indo para o Gerenciador do IIS (Serviços de Informações da Internet), clicando duas vezes em Pesquisa no diretório e clicando em Ativar.

No meu caso, eu podia acessar os arquivos diretamente, mas não conseguia acessar as pastas.

Eu sei que você teve esse problema em um host interno, mas eu tinha experimentado tal problema antes em um host externo e no meu caso tinha sua própria resolução, talvez pudesse salvar o tempo de alguém:

Na verdade, o meu site foi parado por algum motivo que atualmente eu não estou ciente, para verificar se você tem o mesmo problema, na página principal do WebsitePanel ir para Web -> Websites e selecione o nome de domínio do seu site da lista , depois que no lado direito da página acabou de abrir, verifique se você ver a palavra STARTED, senão se você vir a palavra STOPPED, faça-a começar de novo. Isso é tudo.

Eu tinha typescript errado o endereço IP em um dígito, o que significava que ele estava indo para um dos meus outros servidores. Muito confuso como você obter uma página de erro .net, mas da máquina errada!

Eu sei que este é um tópico antigo, mas você também pode obter 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á navegar na pasta em vez de exibir sua exibição.

Etapa 1: Selecione o site para o qual o erro HTTP é produzido no IIS e, em seguida, clique em Directory Browsing, como mostra a imagem abaixo:

Etapa 2: Na janela de Pesquisa no diretório no IIS, clique em Ativar em Ações à direita, conforme mostrado no diagrama abaixo:

Agora Directory Browsing está habilitado para o seu site asp.net, basta reiniciar o aplicativo da web no IIS e navegar no site em seu navegador e ver o resultado.

você pode facilmente resolvê-lo seguindo os seguintes passos:

Abra o Gerenciador iis e escolha o site que você deseja implantar (no painel treeview do lado esquerdo) e clique duas vezes no ícone de configuração do aplicativo para abrir o diálogo de configuração do aplicativo e, em seguida, você verá uma exibição de grade na canvas, clique duas vezes na linha denominada páginas da Web: Ativado e o valor configurado como true (que é false por padrão).

funcionou para mim porque antes que eu fizesse isso recebi o mesmo erro eu até habilitei a navegação no diretório (como guia oficial do iis recomendado no fórum iis) mas quando eu naveguei pelo site semei uma lista de diretórios ao invés da página web real mas quando eu fiz o passos acima do problema resolvido e tudo funcionou bem (mas não se esqueça de conceder access para asppool em logins sql depois de resolver este problema, é claro)

como eu disse, funcionou bem para mim, espero que funcione bem para você também boa sorte