Windows 2012 / IIS 8 + ASP.NET MVC Applicação 403.14 (Proibido) - O servidor Web está configurado para não listar o conteúdo

3

Eu tenho um aplicativo MVC 4 muito simples que estou tentando implantar em um servidor Windows 2012.

Inconsistentemente, ao navegar para a raiz do aplicativo da web ( http://localhost/app ), ele retorna um 403.14-Forbidden :

Informações detalhadas sobre erros:

Module:            DirectoryListingModule
Notification:      ExecuteRequestHandler
Handler:           StaticFile
Error Code:        0x00000000
Requested URL:     http://localhost:80/test1/
Physical Path:     c:\apps\test1\
Logon Method:      Negotiate

O aplicativo da web é:

  • É um modelo muito intrincado de VS2012 MVC4 Intranet - com apenas um ajuste em um rótulo para provar que as coisas estavam funcionando.
  • é executado em um pool de aplicativos integrado da versão 4.0
  • configuração para usar a autenticação do Windows
  • o pool de aplicativos tem uma Identidade do AD personalizada atribuída (para obter acesso a um servidor SQL)
  • a identidade do pool de aplicativos tem permissões de leitura na pasta c: \ apps \ test1 na qual está sendo executada
  • É um aplicativo MVC4, direcionado ao .NET 4.0 atualmente -Não há documento padrão em um aplicativo MVC4 (como um default.aspx), já que não deve precisar de um.
  • Eu não quero ativar listagens de diretórios (já que esse não é o erro real).
  • Instalado: Funções / Servidor Web (IIS) / Desenvolvimento de Appliation / (Extensibilidade do .NET 4.5, Inicialização de Aplicativos, ASP.NET 4.5, Extensões ISAP, Filtros ISAPI, Protocolo WebSocket)
  • Funciona localmente em minha máquina no IISExpress no Windows 8
  • Configurado no web.config: <modules runAllManagedModulesForAllRequests="true" />
  • está definido como pré-compilado durante a publicação

Quando altero a opção pré-compilada para false , o aplicativo da Web não falha (no meu teste, pelo menos, parece funcionar de forma consistente).

A razão pela qual eu digo que é inconsistente é que eu já vi isso funcionar, então eu publiquei e o erro retorna. Não consigo encontrar um padrão para o problema (e, no momento, não consegui fazer com que funcionasse de novo).

O 403 é retornado de um navegador da Web local ou remoto.

Eu tive problemas para encontrar uma solução que não se destina a versões anteriores do Windows (como sugestões para reinstalar o ASP.NET, que não funcionará no Windows 2012).

Eu realmente não sei mais o que tentar.

    
por WiredPrairie 21.03.2013 / 23:10

3 respostas

1

Acabou de ver "Custom AD Identity" aqui.

  1. verifique se o novo usuário realmente tem direitos para ler o caminho do sistema de arquivos, mesmo que não haja nada lá.
  2. verifique se o novo usuário está no grupo de aplicativos do IIS para conversar com a metabase
  3. Verifique se a autenticação do modo kernel está configurada, dependendo disso:
    1. (em caso afirmativo) verifique se setspn não possui registros extras
    2. (se não for o caso) considere colocar o NTLM acima do Kerberos na sua lista de negociações de autenticação para ver se isso resolve o problema.

2012 é novo o suficiente para que eu não saiba suas peculiaridades de erro, mas esses são todos bons lugares para começar quando for proibido 403.

    
por 26.03.2013 / 20:47
0

Eu tive um problema semelhante e minha resposta foi esta:

link

Eu tive o add o IP da máquina acessando o serviço. Eu não sabia que isso tinha sido ativado.

    
por 01.04.2013 / 19:09
0

Eu tenho o mesmo problema. Eu pesquisei muito tempo e fiz todas as instruções neste link . Eu configurei meu aplicativo como o seu; mas não funciona de todo. Finalmente, descobri que: Quando escolho a pré-compilação durante a publicação, devo definir que o AssemblyCulture seja string vazia (no arquivo Properties / AssemblyInfo.cs) Por exemplo:

[assembly: AssemblyCulture("")]

Se eu definir como o seguinte, não funciona

[assembly: AssemblyCulture("fr-FR")]

    
por 02.04.2013 / 15:32