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?
- Podría publicar algo de código, por favor?
- hanselman.com/blog/… tiene algo de información sobre este
- Es posible generar un xml-serialización-asamblea-como-parte-de construir e incluir en la implementación de stackoverflow.com/questions/134224/…
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?
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.
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
Que Necesita para dar el permiso a la carpeta temp que está en la carpeta de windows. Y el Problema está Resuelto………..
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).
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.
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:
Aviso que typeof(Propiedad) parámetro en XmlArrayItem atributo no es compatible (lo más probable) con cadena causando excepción similar:
Si typeof(Propiedad) se sustituye con typeof(cadena) serialización va a trabajar de nuevo.
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…
Dar Privilegios de Lectura/Escritura a ‘C:\WINDOWS\TEMP’ carpeta. Va a trabajar.
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
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.)