Activator.CreateInstance lança ArgumentNullException para parâmetro 'Tipo'
-
06-09-2019 - |
Pergunta
Eu recentemente encontrou um problema com o meu provedor de perfil: ele não iria recuperar perfis corretamente (veja abaixo de erro). Ele trabalhou localmente, mas quando eu colocar o código compilado por um projeto de implantação da Web em um servidor que iria falhar.
O valor não pode ser nulo. Nome do parâmetro: Tipo Descrição: Uma excepção não tratada ocorreu durante o execução de solicitação da web atual. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.
Strack Trace:
[ArgumentNullException: valor não pode ser nulo. Nome do parâmetro: tipo] System.Activator.CreateInstance (tipo Type, Boolean não públicas) 2.796.915 System.Web.Profile.ProfileBase.CreateMyInstance (nome de utilizador String, Boolean isAuthenticated) 76 System.Web.Profile.ProfileBase.Create (username String, Boolean isAuthenticated) 312
Eu encontrei a solução, mas é longe de ser óbvia (ver minha resposta abaixo).
Solução
A solução para o meu erro foi o de desmarque esta opção a partir do projeto de implantação da Web:
Tratar como componente de biblioteca (remove App_Code.Compiled arquivo)
Outras dicas
Simplesmente construir o projeto de implantação da web novamente após a mudança de caixa às vezes não é suficiente.
Você deve reconstruir o site, ou limpar a pasta ASP.NET temporária arquivos ASP.NET, normalmente localizado em "% windir% Microsoft.NET \ Framework \ v2.0.50727 \ Arquivos temporários ASP.NET".
Eu experimentei recentemente este problema e ele acabou por ser uma dependência faltando. Usando a ferramenta Fuslogvw.exe fornecido com visual studio finalmente identificou o problema.