2009-03-02 14 views
13

Después de implementar un servicio web ASP.net a mi servidor de producción que me dieron esta excepción:System.MissingMethodException - 3.5 SP1 versiones demonios

System.MissingMethodException

Método no encontrado: 'booleana Sistema .Threading.WaitHandle.WaitOne (Int32)'

Los MSDN documentation estados:

Información de la versión de .NET Framework Compatible con: 3.5 SP1, 3.0 SP2, 2.0 SP2

por lo que la razón de este error es que mi servidor no se ha actualizado para el último Service Pack.

La pregunta es:

¿Por qué iniciar el código? IMO si la versión del marco de destino es diferente, la aplicación no debe comenzar en absoluto.

¿Cómo puedo asegurarme de que mi código pueda ejecutarse en la versión de framework de máquina de destino antes de JIT?

Esto es una locura. Creo que Microsoft debería tomarse más en serio los problemas de versionado.

Respuesta

4

Me pasó lo mismo con 1.1 y 1.1 SP1 hace mucho tiempo ... Supongo que no hay una buena solución ya que los ensamblajes tienen la misma versión, puede intentar validarla leyendo manualmente el .NET instalado versión o simplemente instale los últimos service packs en todas sus máquinas de desarrollo y producción.

+0

Gracias por su respuesta. ¡Qué lástima de todos modos! –

7

Estoy de acuerdo. El problema es que los números de la versión del ensamblaje no cambiaron. Cuando realicé la transición a .NET 3.5 SP1. Luego, una vez que estuvimos listos, SP1 se instaló en el servidor de compilación. Un enfoque similar podría haberlo salvado del dolor.

18

Aunque el método:

Boolean System.Threading.WaitHandle.WaitOne(Int32) 

no existe, el método:

Boolean System.Threading.WaitHandle.WaitOne(Int32, bool) 

existe.

Buscando con el reflector - WaitOne(Int32) llama a WaitOne(Int32,bool) con false como el valor booleano. Así que simplemente use la segunda firma, proporcionando false como valor booleano, y debería estar bien.

+2

Tuve el mismo problema que el anterior y esta solución funcionó para mí. ¡Gracias! +1 – Connell

+2

@Nissim -> Niza se ahorró mucho tiempo para mí. – vijaysylvester

Cuestiones relacionadas