Brian,
Para que isso faça sentido, em primeiro lugar, dê uma olhada na lista de processos para todos os usuários no Gerenciador de Tarefas.
O w3wp.exe é o novo processo de trabalho da WWW. Ele é executado em uma caixa de proteção de segurança usando as permissões de um usuário chamado DefaultAppPool.
Antigamente, em vez do usuário DefaultAppPool, eles seriam usuários IUSR e IWAM (consulte Quais são as contas IUSR e IWAM no IIS? ).
Quando você usa um provedor de associação SQL, o processo w3wp.exe iniciará uma Instância do Usuário do SQL Server e anexará ao banco de dados especificado na cadeia de conexão, geralmente o App_Data / ASPNETdb.mdf. Executar a instância do usuário do SQL Server requer um perfil local, para que os arquivos temporários tenham um lugar para ir.
Etapas de solução de problemas:
- Verifique se o processo w3wp.exe é executado pelo usuário DefaultAppPool.
- Verifique se o SQL Server tem instâncias de usuário ativadas (consulte config_value e run_value)
exec sp_configure 'user instances enabled'
- Se não exec
%pr_e%
, em seguida: reconfigurar
- Reinicie o SQL Server, apenas para o caso de o ASPNETdb.mdf estar conectado por uma instância de usuário diferente do SQL Server.
- Verifique se o diretório C: \ Users \ DefaultAppPool do perfil de usuário local existe. Caso contrário, ative LocalProfile = True, isso criará o perfil local. Isso é feito no Gerenciador do IIS, nos Pools de Aplicativos, no DefaultAppPool, nas Configurações Avançadas ...
- Se você tiver mais problemas com o banco de dados, use o SQL Configuration Manager para se conectar à instância do usuário e ver se o db foi anexado. Você precisa se conectar ao instance_pipe_name correto.
sp_configure 'user instances enabled', 1