1 votos

Ocasionalmente "No se pudo cargar el archivo o ensamblaje" en el WebService asmx en IIS y DFS

Tenemos un puñado de servicios web de ASMX alojados en dos cajas idénticas de Windows Server 2003. El directorio virtual para los servicios web se carga en un recurso compartido DFS, ambos servidores apuntan al mismo recurso compartido. Tenemos un equilibrador de carga entre Internet y los dos servidores web.

En un intervalo aparentemente aleatorio (ahora mismo unas dos veces por semana) cuando un usuario intenta acceder a un método del servicio web, IIS devuelve el error "No se ha podido cargar el archivo o el ensamblaje" para uno de los ensamblajes utilizados en la llamada al método, y seguirá informando de ello cada vez que se llame al método hasta que se recicle el pool de aplicaciones.

No hemos encontrado ningún patrón distinguible para el problema. Esto es lo que sé:

  • el montaje que falta varía (pero siempre es un montaje casero)
  • el método del Servicio Web que falla varía
  • no hay un patrón notable en los momentos o intervalos en los que aparece el problema
  • no hay usuarios administradores que accedan a los servidores cuando aparece el problema
  • el método que falla funcionará correctamente en un servidor y fallará en el otro, aunque ambos apunten a la misma carpeta bin
  • el problema siempre se puede corregir reciclando el pool de aplicaciones y no haciendo ningún otro cambio

He habilitado el registro de la carpeta de montaje, y sé que la carpeta está buscando en la ubicación correcta para el archivo.

Nuestros ensamblajes están compilados para .Net 3.5.

1voto

Antti Sykäri Puntos 10381

Tuvimos un problema similar.

Nunca averiguamos oficialmente lo que ocurría, pero redujimos el problema al nivel de suplantación en el web.config y al acceso del usuario a la carpeta que alberga el archivo de ensamblaje.

Descubrimos que a veces el proceso trabajador de IIS intentaba cargar el ensamblaje como la persona que accedía a la petición web. Pudimos ver que el hilo que intentaba cargar el ensamblaje estaba suplantando a un usuario que hacía una petición a una de las páginas asp.net.

De todos modos, hemos solucionado el problema concediendo acceso a los usuarios autentificados en el dominio. Espero que puedas encontrar una solución mejor.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X