Falha no logon para “IIS AppPool \ ASP.NET v4.0” - SQL Server Web

6

Estou tentando migrar um site do SQL Server 2008 Express para o SQL Server Web, e o site está tendo problemas para acessar o banco de dados. Na verdade, o Express só foi usado ao executar o site a partir do servidor da Web do Visual Studio, por isso não tenho certeza se a configuração está funcionando bem no IIS 7. Por fim, quando tento acessar uma página que usa o Linq to Entities (exigindo que o site se conecte ao banco de dados), recebo o erro "Login failed for 'IIS AppPool \ ASP.NET v4.0'". Então, eu abri o SQL Server Management Studio, e tentei adicionar um login para o usuário, mas acabei de receber uma mensagem dizendo "Windows NT ou grupo de usuários '***** \ Asp.Net v4.0' não encontrado" . Isso acontece mesmo depois que eu pergunto ao Management Studio para verificar o nome do usuário, o que ele faz com sucesso. Alguém pode me dizer o que estou fazendo errado? Além disso, também estou aberto a sugestões alternativas ... Tudo está em execução no mesmo servidor, portanto, não há conexões remotas. Por esse motivo, adoraria usar a Autenticação do Windows, se possível.

    
por user127667 02.10.2010 / 18:59

3 respostas

7

O IIS 7 está tentando usar a identidade do pool de aplicativos do IIS para acessar seu banco de dados SQL.

Portanto, você deve primeiro conceder o acesso ao pool de aplicativos do IIS 7 para o servidor SQL.

Para fazer isso, vá no SQL Server Management Studio - > Instância do servidor - > Segurança - > Logins - > Novo Login

O nome de login será "IIS APPPOOL \ ASP.NET v4.0". Isso ocorre porque toda vez que você cria um pool de aplicativos no IIS7, ele cria uma identidade que usa o mesmo nome do pool de aplicativos. No seu caso, você está usando o pool de aplicativos padrão que vem com o asp.net 4.

Em seguida, no seu banco de dados, vá para Segurança - > Logins - > Novo login, nomeie-o, selecione o objeto de usuário que você adicionou na etapa anterior (IIS APPPOOL \ ASP.NET v4.0) e, em seguida, dê-lhe privilégios de esquema / função db_owner (ou qualquer que seja sua necessidade).

    
por 02.10.2010 / 19:16
1

EDITAR : Por favor, não faça isso - eu não estava pensando quando escrevi originalmente essa resposta.

Para mais detalhes, por que minha resposta original não é uma boa ideia, analise o link nos comentários abaixo.

Outra solução é entrar no IIS e editar o próprio pool de aplicativos para usar a identidade "LocalSystem". Isto pode ser encontrado por clique com o botão direito no pool de aplicativos - > configurações avançadas - > clique no botão '...' da Identidade (logo abaixo de "Modelo de Processo") - > selecione "LocalSystem" na lista suspensa Conta interna.

Fazendo isso dessa maneira, você não precisa configurar um novo usuário em seu banco de dados.

    
por 22.08.2012 / 16:58
-1

Siga estas etapas como na imagem e escolha seu banco de dados na última imagem.

Clique nos passos abaixo para ver a imagem:

etapa: 1

passo: 2

etapa: 3

    
por 26.11.2018 / 10:15