Aquí podría ser tu PUBLICIDAD


Cómo saber a qué página se refiere un dll en el sitio precompilado de ASP.NET

votos
1

Estoy usando un sitio pre-compilado de ASP.NET 2.0 (es decir, copiado en el servidor usando la función Build-> Publish Web Site en Visual Studio 2005). Capturo y registro todos los errores que suelen ser bastante detallados, pero últimamente he estado obteniendo el siguiente error sin otra información:

No se pudo cargar el ensamblado 'App-Web-rp2eml-j'. Asegúrese de que esté compilado antes de acceder a la página.

Ahora, ese archivo 'App-Web-rp2eml-j' debería ser un dll en mi carpeta bin que se creó para el sitio precompilado. Mi pregunta principal es, ¿cómo puedo decir qué página aspx está buscando ese dll? Intenté volver a publicar el sitio e incluso eliminar completamente el sitio y volver a publicarlo, pero el problema no desaparece.

Cuando se busca en Google el problema, la mayoría de las respuestas sobre este mensaje de error se centran en asegurarse de que IIS esté configurado para usar ASP.NET 2.0 en lugar de 1.1. Este no es mi problema.

NOTA 1: El sitio parece funcionar, pero obviamente hay (al menos) una página que está rota y que no puedo encontrar.

NOTA 2: El nombre de archivo anterior debe tener caracteres de subrayado en lugar de guiones, pero el marcado SO está cambiando el texto entre los guiones bajos a cursiva.

Publicado el 12/03/2009 a las 15:40
fuente por usuario Rick
En otros idiomas...        العربية       

2 respuestas

votos
2

¿El dll mencionado existe en su directorio bin? Usted puso en cursiva esa parte así que sospecho que no. Eso podría significar que el error se refiere a un dll en la carpeta Archivos temporales.

Este problema puede ocurrir si uno o más de los dlls en la carpeta Archivos temporales de ASP.NET están dañados. En ocasiones, ASP.NET no actualiza los archivos aquí si no hay cambios en el dll que reside en el directorio virtual. Ocurre de vez en cuando en mi servidor.

Mi solución es la siguiente:

  1. Detenga los servicios de IIS en el servidor por un minuto más o menos.

  2. Navegue a la carpeta de archivos temporales de ASP.NET (generalmente ubicada en "% windir% \ Microsoft.NET \ Framework \\ Archivos ASP.NET temporales \ MyApplicationName") y borre todos los archivos dentro de la carpeta.

  3. Publique y cargue mi sitio en el directorio virtual configurado.

  4. Reinicie IIS y otros servicios.

Este simple proceso de 4 pasos me ha funcionado muy bien en el pasado y puede valer la pena intentarlo.

Para responder a su pregunta básica, sin embargo, hay dos formas de "aplicar ingeniería inversa" a un dll:

  1. Carguelo en ILDASM y verifique las clases contenidas.
  2. Use Reflector para guardar todos los archivos de clase contenidos dentro de la DLL en una carpeta.

Sin embargo, dudo si esto resolverá tu problema porque cada dll podría contener muchos archivos de clase y no tendrías ni idea de "qué página de ASPX está buscando ese dll".

Respondida el 12/03/2009 a las 03:57
fuente por usuario Cerebrus


Aquí podría ser tu PUBLICIDAD


votos
0

Tal vez pueda obtener información más detallada sobre el error con el evento Global.asax Application_OnError, para que pueda ver la pila Trace.

Respondida el 12/03/2009 a las 03:45
fuente por usuario Jhonny D. Cano -Leftware-