Erro HTTP 403.14 - Proibido - O servidor Web está configurado para não listar o conteúdo deste diretório

146

Acabei de criar um novo site vazio no Visual Studio 2012 e cliquei em Executar (ou seja, exibir no navegador) e recebo este erro:

Erro HTTP 403.14 - Proibido O servidor Web está configurado para não listar o conteúdo deste diretório.

Entrei no IIS, cliquei em Navegação no diretório e garanti que a navegação no diretório estivesse ativada, mas ainda recebo esse erro. Eu não consigo descobrir?

O projeto do site que acabei de criar não está listado em Sites padrão no Gerenciador do IIS, o que achei estranho.

Como faço para me livrar desse erro?

Aindriu
fonte
O projeto está configurado para usar o IIS? Ou IIS Express? Ou Casini?
Kris Vandermotten
Você executou ou visualizou no navegador ? 2 coisas diferentes. Se este é um projeto MVC, você pode ter tentado visualizar um viewem um navegador?
22413 christiandev
Verifique se você habilitou o ASP.NET 4.5 ou ASP.NET no Painel de Controle \ Todos os Itens do Painel de Controle \ Programas e Recursos \ Ativar ou desativar os Recursos do Windows \ Serviços de Informações da Internet \ Serviços da World Wide Web \ Recursos de Desenvolvimento de Aplicativos \ ASP.NET 4.5 ou ASP.NET 3.5, dependendo das configurações do pool de aplicativos.
Bimal Das

Respostas:

142

mantenha isso no seu arquivo de configuração da web e renomeie o add value = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

outro

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
NASSER
fonte
1
Estou trabalhando neste projeto há meses - nunca precisei dessa linha. Publiquei o site hoje e ele não funcionaria mais na depuração !!! Adicionado esta linha faz com que funcione novamente! Eu verifiquei o SVN - definitivamente nunca precisava dele antes. WTF !? Obrigado na mesma, única desperdiçado uma hora :)
Percy
Estou recebendo o erro HTTP 500.22 - Erro interno do servidor.
Bryan Labuschagne
40

Esse problema ocorre porque o site não possui o Directory Browsingrecurso ativado e o documento padrão não está configurado. Para resolver esse problema, use um dos seguintes métodos. Para resolver esse problema, segui as etapas do método 1, conforme mencionado na página de suporte da Microsoft e é o método recomendado.

Método 1: Habilitar o recurso de Navegação de Diretório no IIS (recomendado)

  1. Inicie o Gerenciador do IIS. Para fazer isso, clique em Iniciar, clique em Executar, digite inetmgr.exe e, em seguida, clique em OK.

  2. No Gerenciador do IIS, expanda o nome do servidor, expanda Sites e clique no site que você deseja modificar.

  3. Na visualização Recursos, clique duas vezes em Navegação no Diretório.

  4. No painel Ações, clique em Habilitar.

Se isso não funcionar, você pode estar tendo um problema diferente do que apenas um problema de listagem no Diretório. Então, siga a etapa abaixo,

Método 2: adicionar um documento padrão

Para resolver este problema, siga estes passos:

  • Inicie o Gerenciador do IIS. Para fazer isso, clique em Iniciar, clique em Executar, digite inetmgr.exe e, em seguida, clique em OK.
  • No Gerenciador do IIS, expanda o nome do servidor, expanda Sites e clique no site que você deseja modificar.
  • Na visualização Recursos, clique duas vezes em Documento Padrão.
  • No painel Ações, clique em Habilitar.
  • Na caixa Nome do arquivo, digite o nome do documento padrão e clique em OK.

Método 3: Habilitar o recurso de Navegação de Diretório no IIS Express

Nota Este método é para desenvolvedores da Web que enfrentam o problema ao usar o IIS Express.

Siga esses passos:

  • Abra um prompt de comando e vá para a pasta IIS Express no seu computador. Por exemplo, vá para a seguinte pasta em um prompt de comando: C:\Program Files\IIS Express

  • Digite o seguinte comando e pressione Enter:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true

Por sorte
fonte
Essa resposta deve ser aceita. O método 2 funcionou para mim. Inicialmente, criei um site vazio e adicionei um formulário da web chamado "WebForm1.aspx". Por isso, preciso adicionar esse nome na lista de documentos padrão. Obrigado.
novato 04/01
31

Vá para cmd e digite isto:

para SO x64:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

para SO x32:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Isso instalará a versão correta e o IIS entenderá a navegação no diretório MVC

Sadjad Khazaie
fonte
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir isso funcionou para mim para o meu sistema de 64 bits e aplicação MVC
Amar Gadekar
de comando para x64 também trabalhou para mim para resolver esse problema ocorreu no meu serviço web asmx
Cavid
24

Pode haver vários motivos para o problema. Um que funcionou para mim no IIS 8.5 foi o seguinte

Passos

  1. Digite "ativar ou desativar os recursos do Windows" na pesquisa.
  2. Clique em "Adicionar funções e recursos" no Gerenciador do Servidor.
  3. No Assistente, role para baixo até o servidor da Web e selecione: Servidor da Web -> Desenvolvimento de Aplicativos. Selecione todos, exceto o CGI da lista, como mostrado na captura de tela

insira a descrição da imagem aqui

  1. Finalmente clique em Avançar e instale.
  2. Reinicie o IIS

Seu site pode começar a funcionar.

Sutish Satish
fonte
18

Defina uma página inicial.

Quando tive esse problema, entrei no gerenciador de soluções, localizei a página que queria ver primeiro (no meu caso "Home.aspx), cliquei com o botão direito do mouse e selecionei" Definir como página inicial ". Isso corrigiu o problema (que parecia muito parecido com o seu.) Isso foi no Visual Studio 2012 Professional e eu o executei no Firefox.

joshmcode
fonte
17

Tente adicionar as seguintes configurações ao web.configarquivo.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Litisqe Kumar
fonte
2
Erro HTTP 500.22 - Erro interno do servidor
Bryan Labuschagne
Meu problema foi resolvido, depois de adicionar esse código no arquivo webconfig, obrigado.
precisa saber é
17

Acabei de colar esse trecho de código no arquivo web.config e o erro foi resolvido.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
Chamila Maddumage
fonte
10

Eu tenho um remédio rápido para isso. Na verdade, recebi esse erro porque não havia definido minha página da web como página inicial. Quando fiz minha página da web (html / aspx) como a página inicial definida, como mostrado abaixo, esse erro foi corrigido.insira a descrição da imagem aqui

Não sei se esta solução ajudará outras pessoas.

Rinoy Ashokan
fonte
8

O modelo de site vazio cria um site ASP.NET que inclui um arquivo Web.config, mas nenhum outro arquivo. Significa que você não tem nenhuma página padrão para exibir na navegação ou execução.

Essa mensagem de erro significa simplesmente que você não instalou e configurou o documento padrão corretamente no seu IIS.

Uma vez configurado, a mensagem de erro desaparecerá.

Sain Pradeep
fonte
Adicionei uma página mestra ao site vazio e, quando cliquei em executar sem código, ainda recebi um erro. Não sei ao certo o que preciso fazer para executá-lo.
Aindriu
você tem página padrão em seu site, se não, em seguida, criar e definir a página padrão como mostrado neste ligação iis.net/learn/web-hosting/web-server-for-shared-hosting/...
Sain Pradeep
Não, eu não tinha uma página padrão no site vazio. Estou seguindo um exemplo em um livro de C #. Eu adicionei uma página padrão e a página seria carregada no navegador ok. Mas o exemplo estava usando apenas páginas mestras. Não entendo por que não está funcionando. É um exemplo muito simples.
Aindriu
8

No site do IIS:

  1. selecione "Configurações avançadas"
  2. Em seguida, para o pool de aplicativos, escolha "ASP.NET v4.0"

imagem por exemplo

Querer fazer
fonte
2
Isso não responde à pergunta do OP. Alterar o pool de aplicativos usado por um site no IIS não afeta a maneira como o site está configurado para listar o conteúdo do diretório (ou não). Isso tem a ver com a configuração no arquivo web.config.
JNYRanger #
8

Painel de controle> Ativar ou desativar os recursos do Windows

Serviços de Informações da Internet> Serviços da World Wide Web> Recursos de Desenvolvimento de Aplicativos

Ative as duas opções

Extensibilidade do .NET 3.5
.ASP.NET 3.5

Debaixo de insira a descrição da imagem aqui

Hakan Fıstık
fonte
5

No meu caso, recebi o mesmo erro depois de criar um projeto de API da Web vazio.

Eu o resolvi editando RouteConfig.cs na pasta App_Start :)

Substituí a linha de leitura do código: -

defaults: new { action = "Index", id = UrlParameter.Optional }

com o seguinte :-

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

Observe que eu apenas precisei especificar o Controller cuja ação de índice eu gostaria de chamar primeiro.

Bem, todas as respostas acima não resolveram o meu caso (como eu queria), por exemplo

  • Habilitar a navegação no diretório do web.config apenas listou todos os arquivos e pastas no meu projeto, como faria o php quando você não tem um arquivo de índice
  • Definir defaultDocument também não funcionou para mim, de alguma forma ainda recebi o Erro HTTP 403.14 (ainda não faço ideia do porquê)

Se houver alguém em circunstâncias semelhantes às minhas, experimente.

rey_coder
fonte
Essa foi a maior parte da resposta que eu precisava. O nome do controlador, no entanto, deve corresponder ao que foi criado para um aplicativo MVC Nome do controlador (se você chamar o IndexController do seu controlador, ele funcionaria) - portanto, o nome da ação padrão em um controlador deve ser Index e tudo fica vinculado - as sugestões usar a navegação em diretórios NÃO é uma boa ideia na minha opinião, pois permite que qualquer um navegue no conteúdo do site em sua totalidade.
Mark W. Mitchell
4

No meu caso, experimentei esse erro porque meu aplicativo da web era o .NET v4 e o pool de aplicativos foi configurado para o .NET v2.

Clicar duas vezes no pool de aplicativos abre uma janela pop-up, onde podemos selecionar a versão desejada do .NET Framework.

Passaro preto
fonte
4

RESOLVIDO
Pesquise "Windows Feature"no início ->
Clique em "turn features on and off"->
Expandir "Internet Information Services"e
verifique todos os programas em todas as subpastas e
clique em "OK".
Isso resolverá todos os seus problemas. insira a descrição da imagem aqui

Ahmed Adewale
fonte
3

Resolvi meu problema com o pousio estas etapas =>

  1. Abra o Gerenciador do IIS
  2. Clique no aplicativo
  3. Clique em Navegação no diretório
  4. Clique em Abrir recurso (à direita, você verá em Ações)
  5. Clique em Ativar
Haktan Enes Biçer
fonte
2

Isso pode ser causado por uma entrada bum applicationhost.config.

Pare o IIS Express se estiver em execução (clique com o botão direito do mouse no ícone de rolagem azul claro na bandeja do sistema do Windows; Sair).

Vá para Propriedades do seu projeto> Web e verifique se o URL do projeto está correto. No caso de um URL https, verifique se ele inclui um número de porta no intervalo válido. A URL correta poderia ser: https://localhost:44300/. Agora pressione o botão "Criar diretório virtual" ao lado da URL. Isso adiciona uma nova entrada ao applicationhost.config.

Inicie o projeto novamente e esperamos que você não obtenha mais o erro.

Protetor um
fonte
2

Tenho certeza que depois de anos você provavelmente já tem uma resposta. Mas caso outra pessoa esteja procurando uma resposta no futuro.

Para o meu problema, não precisei de nada no web.config. Não achei que fosse necessário, pois estava funcionando anteriormente.

Verifique se nenhuma pasta tem o mesmo nome da sua página, eu tinha uma pasta chamada "blog" e uma página chamada "blog.aspx", estava tentando carregar a pasta, notei isso no link, alterei a pasta para blogContent , agora ele carrega bem.

Estou postando uma cópia aqui, pois você é o primeiro na consulta de pesquisa.

Justin Sinnard
fonte
2

O problema pode ser causado pela execução do projeto do visual studio no IIS enquanto estiver na guia aberta incorreta no visual studio, portanto, a solução é abrir a guia correta (o formulário da web que você deseja testar no navegador) ou conforme sugerido no Para obter outras respostas, clique com o botão direito do mouse no formulário da web que você deseja definir como página inicial e clique em 'Definir como página inicial'.

Mehdi Fracso
fonte
1

No meu caso, estava faltando a Microsoft.Owin.Host.SystemWebpepita.

pootzko
fonte
1

clique com o botão direito do mouse no seu projeto no Solution Explorer e, em seguida, clique em adicionar novo item, adicione uma página HTML e nomeie-a como index.HTML, afinal, execute novamente o aplicativo

user1324491
fonte
1

No meu caso

No Pool de aplicativos, defino a versão .NetFrameWork para V4.0 e resolvi o problema ....

ashkufaraz
fonte
1

Você deve instalar a parte de desenvolvimento de aplicativos do IIS em seu servidor, como você pode ver nesta figura:insira a descrição da imagem aqui

Amir Parsi
fonte
0

Isso pode acontecer por várias razões. Se você tentou todas as opções acima e ainda está obtendo o mesmo erro, tenho mais uma solução.

Outra razão pela qual isso poderia acontecer é que

  1. Se você tiver a mesma base de código em execução antes de começar a executar a solução nova, poderá encontrar esse erro. O motivo é que o IIS Express está tentando executar na mesma porta da solução antiga que possui o caminho físico registrado para o URL de início do aplicativo.
  2. Como o IIS não pode descobrir o caminho físico para executar a solução, talvez não seja possível localizar todas as dlls necessárias para iniciar o aplicativo.

Soluções:

  1. Tente alterar a porta do aplicativo para o padrão. Por exemplo., Use em http://localhost/vez dehttp://localhost:25836/

  2. Tente mudar para qualquer outra porta se você já tiver usado a porta padrão para o aplicativo anterior. ex: em http://localhost:25364/vez dehttp://localhost/

Isso permitirá que o IIS / IIS Express aponte para o caminho da lixeira padrão do aplicativo mais recente que você está tentando executar, que terá todas as dlls necessárias para iniciar o aplicativo.

Krishna
fonte