He desarrollado una aplicación que utiliza .net 3.5 y han implementado como un .exe en un número de máquinas con el mismo entorno.
Sin embargo, en una máquina en particular me sale el siguiente error. Seguimiento De La Pila:


Ver al final de este mensaje para obtener más detalles sobre la invocación de
just-in-time (JIT) la depuración en lugar de a este cuadro de diálogo.

System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS2001: Source file 'C:\WINDOWS\TEMP\wz58eig4.0.cs' could not be found
error CS2008: No inputs specified
at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
at System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping[] mappings, Type type)
at System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Type type)
at System.Web.Services.Protocols.SoapClientType..ctor(Type type)
at System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()
at SSOClient..ctor()
at sc.tradesvc.SSOManager..ctor()
at sc.tradesvc.SSOManager.get_Inst()
at sc.cashflowgenerator.Controls.LoginForm.btnLogin_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.PerformClick()
at System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)
at System.Windows.Forms.TextBoxBase.ProcessDialogKey(Keys keyData)
at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)

Ensamblados Cargados:

mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
CashflowGenerator
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/DATA/DEVEL/Output/CashflowGenerator.exe
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
System.Core
Assembly Version: 3.5.0.0
Win32 Version: 3.5.21022.8 built by: RTM
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
System.Web.Services
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Web.Services/2.0.0.0__b03f5f7f11d50a3a/System.Web.Services.dll

************** La Depuración JIT **************
Para habilitar el just-in-time (JIT) la depuración, la .archivo de configuración para este
de la aplicación o del equipo.config) debe tener la
jitDebugging valor configurado en el sistema.windows.la sección de formularios.
La aplicación también se debe compilar con la depuración
habilitada.

Por ejemplo:

Cuando está habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de ser controlados por este cuadro de diálogo.


Podría alguien ayudarme con esto?

Como soy nuevo en .net podría alguien también me dicen por qué cuando un temporal de las necesidades de la clase a ser creado en el primer lugar?

11 Comentarios

  1. 30

    XML Seriación funciona mediante la generación de código para realizar la seriación. Esto se hace en un temporal asamblea creado para ese propósito la primera vez que se necesita.

    Sin embargo, esto se basa en ser capaz de escribir la asamblea en el disco.1

    Sus opciones son: (1) dado que la cuenta de usuario que está ejecutando el proceso de permiso de escritura (para una ASP.NET la aplicación es probable que esto sea una mala idea). (2) el Uso de la herramienta del SDK (sgen.exe) para generar previamente (en desarrollo/tiempo de compilación) la seriación de la asamblea y, a continuación, utilizar (y deplot) que de la asamblea.

    1pregunta Abierta: la Api para crear asambleas dinámicamente en memoria: ¿por qué no hacerlo?

    • en VS08 creo que incluso hay una casilla de verificación en las propiedades del proyecto para generarla.
    • Si, creada en memoria, que necesitan para ser recreado en un dominio de aplicación se reinicie. Crear en el disco, entonces permanecen en el disco? No sé si esa es la razón, cuando me pregunto si tienen los mismos nombres después de reiniciar el equipo.
  2. 92

    Acabo de pasar un montón de tiempo buscando la respuesta a esta así que pensé que me gustaría añadir aquí para ahorrar algo de dolor de cabeza para otros. Si utiliza el xsd.exe herramienta para generar el cs se puede tener doble matrices [][] en una matriz debe ser []. Reemplazar todos los [][] con [] en su generados cs archivo y vuelva a intentarlo.

    • Usted me salvó un montón de frustración, buena sugerencia, thnx 🙂
    • Solo encontré con este yo – yo casi estoy tentado a hacer esta pregunta explícita con más reconocible título, sólo así puede responder a ella de nuevo. Bien visto!
    • Esta es la «única» respuesta correcta. Yo también quedé perplejo cuando vi el código generado con el doble de matrices [][]. Pero me alegro de que usted identificado y resuelto la herramienta. Muchas gracias.
    • Eres bienvenido!
    • claramente no lo es! Es otro razón por la que la gente puede ver los síntomas reportados en la OP. Eso no lo hace el /sólo/ respuesta. Los síntomas pueden ser engañosas
    • +1 – me salvó un montón de tiempo! Gracias padre! No puedo creer XSD haría algo tan estúpido… oh wait, XSD, es estúpido. No debe ser sorprendido por este extraño error. THNX de nuevo m8
    • Yo estaba pensando lo mismo, luego me enteré de que ya se había preguntado y respondido casi dos años antes de que esta se – stackoverflow.com/q/6678934/892536. Es interesante que aquí es donde encontramos la respuesta en lugar de los más antiguos, más específica de que se trate. :/
    • Acaba de llegar a través de este… por lo general, al ver esta respuesta, me gustaría downvote, porque el cambio de los archivos generados parecen ser malo. Pero tengo que admitir que… esta es la verdadera respuesta.
    • BOO YA! Camino para ir a Terra! Me ahorró mucho tiempo. Maravilloso encontrar.
    • Gracias, este fue el problema. Me salvó un montón de tiempo
    • Muchas gracias! He utilizado WSDL.exe herramienta y la había hecho exactamente eso! Una vez me quitaron el ()() se solucionó el problema!
    • Quería añadir que esto puede ser causado por «Pegado Especial\XML Clases» también, y este fix funciona aquí. Brava, Terra.
    • Esta fue la solución a mi problema con wsdl.exe así. Yo también encontré este que da a algunas otras opciones de resolución: support.microsoft.com/en-us/help/2486643/…

  3. 24

    Sólo tiene que dar la Lista el Contenido de Carpetas y permisos de Lectura sobre la carpeta %windir%\Temp.

    He encontrado este post cuando tratando de solucionar mi problema, y no tener que dar mi cuenta de usuario con acceso de escritura.

    Desde Microsoft

    • Recuerde seleccionar la correcta IUSR/IIS_IUSRS cuenta en una máquina que es parte de un dominio. Empecé por la adición de la ISUR cuenta para el dominio, pero se necesita para ser el IIS_IUSRS de la cuenta para el equipo local. No necesita acceso de escritura como BillRob declaró.
  4. 5

    Que Necesita para dar el permiso a la carpeta temp que está en la carpeta de windows. Y el Problema está Resuelto………..

  5. 3

    De revestimiento @grzenio comentario de un poco más de los últimos usuarios:

    Si vas a Propiedades del Proyecto -> Construir -> Generar la serialización de la asamblea -> En, las fuerzas de la generación de los XML serializadores ensamblado en tiempo de compilación, eliminando la necesidad de hacerlo en tiempo de ejecución.

    A su vez, esto significa que usted no necesita cambiar los permisos del sistema de ficheros (útil si, por ejemplo, hosting en Windows Azure Web Sites, donde esto no es una opción).

  6. 2

    Necesita agregar *IIS_IUSR* usuario con leer el permiso de escritura para C:\Windows\Temp carpeta.

    NOTA: usuario de Todos no va a funcionar con total control.

  7. 1

    Puede ser que también acaba de algunos simple error en la clase serializada (normalmente resultado de algunos de copiar/pegar). Por ejemplo, la siguiente clase será la causa de este error:

      public class Foo
    {
    private string[] contexts;
    ///<remarks/>
    [System.Xml.Serialization.XmlArrayItemAttribute("Context", 
    typeof(Property), IsNullable = false)]
    public string[] Contexts
    {
    get { return this.contexts; }
    set { this.contexts = value; }
    }
    }

    Aviso que typeof(Propiedad) parámetro en XmlArrayItem atributo no es compatible (lo más probable) con cadena causando excepción similar:

    System.InvalidOperationException: 
    Unable to generate a temporary class (result=1).

    Si typeof(Propiedad) se sustituye con typeof(cadena) serialización va a trabajar de nuevo.

  8. 0

    la Api para crear asambleas dinámicamente en memoria: ¿por qué no hacerlo?

    Sólo una conjetura: supongo que esta posibilidad no existía todavía .NET 1.0, o al menos cuando la clase XmlSerializer fue creado y MS no le gusta el cambio de comportamiento existente…

  9. 0

    Puede ser ya que son aplicación de conmutación de la agrupación de identidad en IIS
    contraseña en lugar de predefinidos
    así que usted tiene uno de los siguientes

    1. volver a predefinidos
    2. dar prmission control total al usuario IWAM_WBSRV-01 en la carpeta temp de windows
  10. 0

    En caso de que esta ayuda a todos, mi problema venía de una clase heredada utilizado en la serialización. El problema fue cuando hice un copia/pega de mi clase yo estaba serializar y dejar de usar ineritance. Por desgracia, las ventajas de la herencia se fue, pero que es mejor que no tener este problema. (Hey, al menos yo estoy bastante seguro de que es lo resolviste. Ha ocurrido hacer un reinicio en el que hay somehwere demasiado.)

Dejar respuesta

Please enter your comment!
Please enter your name here