Pregunta

Estoy usando un sitio ASP.NET 2.0 precompilado (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 generalmente son bastante detallados, pero últimamente recibí el siguiente error sin otra información:

  

No se pudo cargar el ensamblaje   'App-Web-rp2eml-j'. Asegúrate de que   se compila 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 saber qué página aspx está buscando ese dll? he intentado volver a publicar el sitio, e incluso borrarlo por completo y volver a publicarlo, pero el problema no desaparece.

Al buscar 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: Todo el sitio parece funcionar, pero obviamente hay (al menos) una página rota que no puedo encontrar.

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

¿Fue útil?

Solución

¿Existe el dll mencionado en su directorio bin? Pusiste en cursiva esa parte, así que sospecho que no. Eso podría significar que el error se refiere a un archivo dll en la carpeta Archivos temporales.

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

Mi solución es la siguiente:

  1. Detenga los servicios de IIS en el servidor durante aproximadamente un minuto.

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

  3. Publicar y subir mi sitio al 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 realizar ingeniería inversa. un dll:

  1. Cárguelo en ILDASM y verifique las clases contenidas.
  2. Use Reflector para guardar todos los archivos de clase contenidos en el archivo dll en una carpeta.

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

Otros consejos

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top