Pregunta

Me enviaron un ASP.NET aplicación web de anoche, y yo cuando me desperté esta mañana era muy lento y, en ocasiones, se acaba de lanzar un "Servicio no Disponible" error.

He comprobado el Visor de Sucesos y fue llenado con estos errores:

Produjo una excepción no controlada y el proceso finalizó.

Excepción:Sistema.En tiempo de ejecución.La serialización.SerializationException

Mensaje:No se puede encontrar la asamblea 'MonoTorrent, Version=0.80.0.0, Culture=neutral, PublicKeyToken=null'

Estoy perplejo de que estaba trabajando perfectamente cuando me implementado (MonoTorrent se requiere para recuperar el número de sembradoras/leechers por cierto torrent fuera de la tracker - este estaba funcionando bien), pero ya no funciona y cada vez que el código que utiliza la MonoTorrent se involucra, el proceso de trabajo sólo se bloquea.

MonoTorrent.dll es en la /directorio/ bin.


ACTUALIZACIÓN 6/4/10: He compilado el MonoTorrent código fuente con el resto de mi aplicación web, pero todavía se bloquea cuando se utiliza MonoTorrent.Sin embargo, ahora dice que es Unable to find assembly 'OpenPeer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.Aquí, OpenPeer es el nombre de la aplicación web de la asamblea.

No hay solución correcta

Otros consejos

Esto puede suceder en estas circunstancias:

El ASP.NET la aplicación crea un subproceso de fondo, lo que arroja una excepción no capturada.Parece ASP.NET detecta la excepción y quiere registrar en el Registro de Sucesos.Para ello, envía esta excepción de la aplicación Web del dominio de la aplicación a su propio dominio de aplicación (el predeterminado del proceso w3wp).Esto necesita una serialización/deserialización de la excepción.

Si la excepción es una costumbre (es decir, quedefinido por la aplicación Web), no se puede deserializa en el principal dominio de la aplicación de ASP.NET debido a que la asamblea de la definición de la excepción se encuentra normalmente en la Web de la aplicación del directorio bin, no se donde w3wp.exe es (c:\windows\system32\inetsrv).Esto provoca una serialización de excepción y w3wp se bloquea.

Hay maneras posibles para solucionar el problema (en una muy subjetivo - orden de preferencia):

  1. Copia la DLL que faltan en c:\windows\system32\inetsrv
  2. Instalar la DLL que faltan en la GAC
  3. Eliminar la causa de la excepción (más difícil de hacer que de decir, como decimos en francés)
  4. Capturar todas las excepciones del subproceso en segundo plano y hacer el registro usted mismo.

Notas:

  • Si WCF se utiliza y la excepción no capturada es FaultException, WCF se la traga y no es ningún accidente
  • Si la excepción no capturada está en el hilo de la solicitud en la Web, hay un amarillo de la pantalla de la muerte, no esta serialización excepción
  • Realmente parece un error en ASP.NET
  • El de arriba es en realidad un resumen de mis investigaciones de este tema ayer y son sólo una teoría.He probado revisiones 1 y 4, así como el uso de FaultException.

Trate la limpieza de la temperatura ASP.NET archivos . Se resuelve algunos problemas impares antes para mí.

De lo contrario, Fusión de registro de puede arrojar algo de luz.

ACTUALIZACIÓN: @Charlie - No estoy seguro de qué hacer con esos registros ... parece que el registro no es de un dominio de aplicación diferente. Observe que el AppBase se establece en "file: /// C: / windows / system32 / inetsrv /" y AppName es w3wp.exe.

Estoy seguro de que el Visor de sucesos de aplicación debe mostrar Id: LM / W3SVC / # / ROOT si era el dominio de aplicación por defecto, también. En este punto, todo lo que tengo es conjeturas al azar.

  1. te informo No Eres x64 corriendo ... hace monotorrent quizá requerir x 86 ?
  2. ¿Ha comprobado el doble que el directorio es un IIS aplicación, y está configurado para la versión correcta de ASP.NET?
  3. ¿Hay alguna otra aplicación que utiliza monotorrent en este servidor? Tal vez un servicio WCF o algo? No estoy seguro de que la serialización está sucediendo ....
  4. Intenta enganchar el caso AssemblyResolve y carga de forma manual.
  5. ¿Se puede repro en una máquina de desarrollo? Si no es así, tal vez es un FX borked instalar. Desinstalar y volver a instalar.
  6. ¿El reinicio, el reciclaje o detener / iniciar el AppPool solucionar el problema temporalmente, o hacer que aparezca el problema?

Es posible que desee que escribir el texto de su pantalla demasiado de manera que obtendrá un poco de amor .... Google

Aquí están algunas cosas que usted puede intentar..

1.) Ras ASP.Net directorio Temp. Reiniciar IIS y papelera de Aplicación de la piscina.

2.) Asegúrese de que su web-aplicación se está ejecutando en DE PLENA CONFIANZA si realmente las necesidades de PLENA CONFIANZA.

3.) Tome la Asamblea, trate de usar en otras asp.net aplicación y ejecute la prueba de la aplicación en un servidor separado.Esto podría ayudar a diagnosticar el problema.También pruebe a ejecutar la prueba asp.net aplicación en el mismo servidor, pero en la aplicación por separado de la piscina.

4.) Asegúrese de que el IIS sitio web de la aplicación se ejecuta bajo la cuenta de usuario con la necesaria seguridad de privilegios.Intente ejecutar la aplicación en Administratotr como usuario.

EDITAR-1

5.) Compruebe también si la asamblea de la versión es la misma que la mencionada en la web.config.Si hay una discrepancia de versiones a continuación, puede hacer AssemblyBinding Redirección en web.config.

6.) También trate de registaering el Ensamblado en la GAC y ver si se carga correctamente.

EDITAR-2

7.) Trate de reconfigring ASP.NET apoyo en el servidor o tal vez marco de tiempo de ejecución de re-configuración puede ayudar.Esto no puede ser un seguro de la inyección de la solución, pero mirando el problema de la condición que lo desea, puede intentar varias soluciones.

8.) Asegúrese de que usted no falta ninguna actualización crítica de windows server de la plataforma.

Trato de darle algunas ideas -. Lo que hago si yo estaba en la posición

En primer lugar me tome una larga mirada de la MonoTorrent.dll antes de que algunos días que haga su pregunta, y espero que de nuevo hoy. Me encontré y la función que carga el archivo DLL. Mi primera opinión es que algo tiene que ver con los permisos.

espero que tenga acceso al servidor - derecha

Mis primeros pasos es que:

Asegúrese de que su monotorrent.dll Actuall tiene los permisos correctos en el directorio bin , para leer, y ejecutar por su aplicación asp.net. Algunas veces la copia de una DLL, no obtuvieron los permisos de directorio peros carro a cabo sus propios permisos. Para comprobar si el archivo DLL tiene permisos diferentes del resto, simplemente haga clic derecho y vea Propiedades | Seguridad, y luego ir al directorio bin y hacer lo mismo, y comparar los permisos de seguridad. Si son diferentes a continuación, aplicar de nuevo los permisos de directorio y asegúrese de que la DLL heredado por el directorio.

Mi segundo paso

Descargar el ProcessMonitor de sysinternals

http://technet.microsoft.com/en-us/sysinternals /bb896645.aspx

Ejecutar ProcessMonitor y tratar de recrear el error , detenerlo y analizar para ver dónde y por qué la DLL obtiene los permisos denegados para correr. Con la ProcessMonitor se puede ver incluso si hay alguna DLL que no se puede encontrar!

Tengo comprobar los archivos DLL monotorrent y no me encontré nada raro. Él tiene llamadas kerner32.dll, y use el código no seguro para ejecutarse, bien, nada de especial.

Así que si usted hace que 2 pasos y me da alguna información, tal vez pueda ir más allá. (Si no se soluciona por usted y lo que se encuentra)

Yo aconsejaría a la configuración maintanence regular, probablemente, una vez en una semana en la noche del domingo, etc. para después,

  1. Borrar todos los archivos temporales
  2. Eliminar todo ASP.NET IIS archivos temporales
  3. Reiniciar servidor

El problema es que las aplicaciones web ASP.NET causa gran cantidad de archivos temporales que se dejó en el disco, a causa de la compilación dinámica de expresiones regulares, seriliazation asambleas, etc., tales cosas temperatura no se elimina, y más y más arranques basura recogida en conseguir ubicaciones temporales, ASP.NET va más lento y más lento, y llega un punto en donde el disco, así como memoria alcance de desfragmentación punto muy alto, las cosas empiezan a fallar.

Ningún cuerpo le gusta para reiniciar el servidor una vez por semana, pero recuerdo que no tenía opción, en ASP.NET 1.1 tuvimos sistema estable después de reiniciar todos los días, en ASP.NET 2.0 en adelante, somos buenos para haber programado en Nueva puesta en marcha una vez a la semana.

he encontrado este problema y tengo que hacer todo lo que pueda, como archivo temporal clara, servidor de reiniciar, borrar y añadir una referencia y también la reconstrucción de la solución. Sin embargo no puedo resolver este problema. Finalmente muevo la clase de entidad (casi de ellos necesitan para serializar) a la nueva carpeta que he añadido al proyecto y luego resolver este problema.

Este método es un trabajo para mí.

Es la zona horaria diferente servidor y su zona horaria? He tenido este problema al desplegar archivos de recursos, el tiempo de compilación se encontraba en el futuro por lo que dejarían de carga.

Mi suposición de que tiene un montón de conexiones abiertas, pero no cerradas. Me refiero a las conexiones no son devueltos a la piscina. Se ve bien, cuando se inicia la aplicación, pero después de algún tiempo sólo hay varios enchufes disponibles en la piscina y va lento. Otra cosa - conexión no puede mantener cerrada DLL en la memoria, no permitiendo liberar el manejador. Trate de destrucción objeto de depuración.

Sé que es simple, pero he tenido este problema de una vez y fue porque tenía un proyecto de Aplicación Web que contiene

    References

Carpeta y me acaba de copiar mis archivos en un

    Bin

carpeta, en cualquier .web de la red de aplicación en el Las Propiedades de un proyecto de windows, un De referencia de la ficha de Ruta está disponible que, por defecto, debe nada se incluyen en él.marque esta opción y también Construir ficha en Ventana Propiedades de proyecto que Ruta de salida ser como el mismo bin\

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