Erro 500 ao usar uma conta personalizada para o pool de aplicativos no IIS 7

11

Eu tenho um site muito simples, com apenas arquivos estáticos no IIS 7 no Windows Server 2008 SP2.

Quando tento acessar qualquer arquivo estático, recebo um erro 500. Se eu renomear um arquivo html para ter uma extensão aspx, ele funcionará bem.

O site também funciona bem ao usar a identidade interna para o pool de aplicativos. O problema ocorre quando eu mudo para o uso de uma conta personalizada para o pool de aplicativos. Tentei usar contas locais e de domínio para executar o pool de aplicativos.

Dei controle total a essas contas no diretório e nos arquivos do site.

A ativação do rastreamento revela esta mensagem de erro:
ModuleName: IIS Web Core
Notification: 2
HttpStatus: 500
HttpReason: Internal Server Error
HttpSubStatus: 0
ErrorCode: 2147943746
ConfigExceptionInfo
Notification: AUTHENTICATE_REQUEST
ErrorCode: um nível de representação necessário não foi fornecido ou o nível de representação fornecido é inválido. (0x80070542)

Não tive sorte em pesquisar no código de erro.

Brownie
fonte

Respostas:

9

Prolem Solved: O grupo IIS_IUSRS estava ausente no "representar um cliente após autenticação" na diretiva de segurança local.

Brownie
fonte
Trabalhou para mim obrigado! Mas, além disso, aqui está como fazê-lo passo a passo para manequins como eu: Iniciar> Local> Política de segurança> Diretivas locais> Atribuição de direitos de usuário> Representar um cliente após autenticação> Adicionar usuário ou grupo ...> Selecionar IIS_IUSRS
Wowe
1

você pode tentar alterar o pool de aplicativos para esse aplicativo virtual e conceder permissões pessoais para esse novo pool

para conceder permissões para um pool específico, basta conceder permissões ao usuário "IIS APPPOOL \ YOUR_POOL_NAME"

MNK_real
fonte
0

Além da resposta de Brownie (está correto, você deve conceder esse direito à conta do pool de aplicativos); se o IIS enviar esse erro ao chamá-lo usando um cliente WCF (a autenticação do Windows está ativada no IIS), talvez os sinalizadores do token NTLM fornecidos ao IIS não permitam a representação do chamador.

Modifique a configuração do seu cliente a partir disso (o padrão):

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Identification" />
  </clientCredentials>
</behavior>

Para isso:

<behavior name="NewBehavior">
  <clientCredentials>
    <windows allowedImpersonationLevel="Impersonation" />
  </clientCredentials>
</behavior>

Confira este artigo para obter detalhes: Representação e delegação no WCF

Matthieu
fonte