Pergunta

Estou usando um site ASP.NET 2.0 pré-compilado (ou seja, copiado para o servidor usando o recurso "Build-> Publish Site" no Visual Studio 2005). Pego e registro todos os erros que geralmente são bastante detalhados, mas ultimamente tenho recebido o seguinte erro sem outras informações:

Não foi possível carregar o conjunto 'app-web-rp2eml-j'. Verifique se ele está compilado antes de acessar a página.

Agora, aquele arquivo 'app-web-rp2eml-j' deveria estar Uma DLL na minha pasta BIN, criada para o site pré-compilado. Minha principal pergunta é, Como faço para dizer o que a página do ASPX está procurando essa DLL? Eu tentei republicar o site e até limpar completamente o site e publicar novamente, mas o problema não desaparece.

Ao pesquisar o problema, a maioria das respostas sobre esse centro de mensagens de erro para garantir que o IIS seja configurada para usar asp.net 2.0 em vez de 1.1. Este não é o meu problema.

Nota 1: o site parece funcionar, mas obviamente há (pelo menos) uma página quebrada que não consigo encontrar.

Nota 2: O nome do arquivo acima deve ter sublinhado em vez de traços, mas a marcação de So está alterando o texto entre os sublinhados para itálico.

Foi útil?

Solução

A DLL mencionada existe no seu diretório de bin? Você em itálico, então suspeito que não. Isso pode significar que o erro está se referindo a uma DLL na pasta de arquivos temporários.

Esse problema pode ocorrer se uma ou mais das DLLs na pasta ASP.NET TEMPORÁRIAS forem corrompidas. Às vezes, o ASP.NET não atualiza os arquivos aqui se não houver alterações na DLL residindo no diretório virtual. Isso acontece de vez em quando no meu servidor.

Minha solução é a seguinte:

  1. Pare os serviços do IIS no servidor por mais ou menos um minuto.

  2. Navegue até a pasta ASP.NET TEMPORÁRIO (geralmente localizada em "%windir% microsoft.net framework temporário os arquivos ASP.NET myApplicationName") e limpe todos os arquivos dentro da pasta.

  3. Publique e envie meu site para o diretório virtual configurado.

  4. Reinicie o IIS e outros serviços.

Esse processo simples de quatro etapas funcionou muito bem para mim no passado e pode valer a pena tentar para você.

Para responder à sua pergunta básica, no entanto, existem duas maneiras de "engenheiro reverso" uma DLL:

  1. Carregue -o no ildasm e verifique as classes contidas.
  2. Use o refletor para salvar todos os arquivos de classe contidos na DLL em uma pasta.

No entanto, duvido que isso resolva seu problema, porque cada DLL pode conter muitos arquivos de classe e você não teria uma pista de "qual página ASPX está procurando por essa DLL".

Outras dicas

Talvez você possa capturar informações mais detalhadas sobre o erro com o Global.asax Event Application_onerror, para que você possa assistir ao rastreamento da pilha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top