Error al ejecutar aplicación winforms en red

Desarrolle una aplicación winforms en visual studio 2005. Una ves desarrollada cree los installadores correspondientes. El problema surge en que al instalarlo en mi notebook para probar con windows vista anda perfecto.
Luego probé en mi pc de escritorio y también. Anda perfecto. Pero tengo 2 pc de escritorio en red, una se encuentra en el piso de arriba y la otra abajo.
Instale la aplicación en la pc de abajo y el servidor de base de datos sql server 2005 se encuentra en la pc de arriba y cuando lo instale en una pc cliente de abajo al correr la aplicación me da el siguiente error en un formulario que
Lo instancio en 4 lugar o sea que a los 3 anteriores si los toma.
Porque al iniciar la aplicación instancio todos los formularios del sistema.
System. IO. FileNotFoundException: No se puede encontrar el módulo especificado. (Exception from HRESULT: 0x8007007E)
Este error no me da en la pc de arriba o sea sea donde tengo el servidor ni en la notebook, pero si ocurre en la pc de abajo . Porque puedo ser ¿?
Ademas cabe aclarar que en la pc de arriba el servidor se llama sgo-dbservert y en la notebook también. Así ande lo tuve que llamar igualen la notebook.
Pero como funciona en red el sistema en la pc de abajo se llama sgo-dbservert2 y como la conexión del sistema apunta a sgo-dbservert por la red lo deberiatomar y no creo que sea un error que no encuentra el servidor sino de una .dll que si la tengo en la carpeta de la aplicación.

2 Respuestas

Respuesta
1
El error indica que estas tratando de usar o abrir, o cargar un archivo que la aplicación no encuentra.
Como no explicas que hace la aplicación o en que punto crees que pueda ser, te doy algunas ideas, estas intentando cargar una imagen que en esa PC no existe, o que no existe la ruta o path del archivo que estas intentando cargar.
Estas leyendo algún archivo de texto y la ruta que especificas para el archivo no existe, o el archivo no existe.
Ok tienes razón en eso si por ahí pensaba. Ahora lo raro es porque en mi pc de arriba anda perfecto y abajo me da el error ¿? Si el componente que me da un error es un barra de progreso no se porque si no usa path.
El sistema es de seguimiento de expedientes.
Saludos.
En tu pc no te da error porque allí lo desarrollaste, me imagino que debió haber quedado quemado el path o ruta de "algo" en e código y eso es lo que te esta generando el error.
Revisa si en algún control le asignas o asocias algún archivo que debe tener path de tu equipo y en el otro PC ese path no existe.
El sistema de desarrolle en windows xp en una pc virtual 2007 sobre mi notebook con windows vista.
En la notebook anda bien y en la pc de arriba también. (No lo desarrolle ahí sino en la pc virtual en mi notebook), pero da la casualidad que ambos en la notebook y en la pc de arriba tienen el mismo nombre que el pc virtual sgo-dbservert y el servidor también. Tienen instalado ambos en la notebook y en la pc de arriba para pruebas.
Al querer acceder de la pc de abajo me da el siguiente error y entiendo lo que me decís pero me canse de buscar y no tengo ningún path mal.
Este es el error que me da:
1-OzProgressBar (es la barra de progreso solo eso no lleva ningún path, solo simula una barra de progreso)
2- expedientespordia es el formulario que lo contiene y curiosamente los 3 formularios anteriores instanciados no da error porque no usan la barra.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.TypeInitializationException: The type initializer for 'Creedox.Formularios' threw an exception. ---> System.IO.FileNotFoundException: No se puede encontrar el módulo especificado. (Exception from HRESULT: 0x8007007E)
at Creedox.OzProgressBar..ctor()
at Creedox.ExpedientesPorDia.InitializeComponent()
at Creedox.ExpedientesPorDia..ctor()
at Creedox.Formularios..cctor()
--- End of inner exception stack trace ---
at Creedox.SplashScreen.Timer1_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Creedox Deptos System
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/Creedox%20Deptos%20System.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
SpinningProgress
Assembly Version: 1.0.2390.28143
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/SpinningProgress.DLL
----------------------------------------
SuperToolTip
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/SuperToolTip.DLL
----------------------------------------
PowerComboBox
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/PowerComboBox.EXE
----------------------------------------
NETXP.Controls
Assembly Version: 3.0.5600.2205
Win32 Version: 3.0.5600.2205
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/NETXP.Controls.DLL
----------------------------------------
System. Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.42 (RTM.050727-4200)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Janus.Windows.ExplorerBar.v2
Assembly Version: 2.0.1123.0
Win32 Version: 2.0.1123.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/Janus.Windows.ExplorerBar.v2.DLL
----------------------------------------
Janus.Windows.UI.v2
Assembly Version: 2.0.1123.0
Win32 Version: 2.0.1123.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/Janus.Windows.UI.v2.DLL
----------------------------------------
Janus.Windows.Common.v2
Assembly Version: 2.0.1123.0
Win32 Version: 2.0.1123.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/Janus.Windows.Common.v2.DLL
----------------------------------------
Janus.Windows.GridEX.v2
Assembly Version: 2.0.1123.0
Win32 Version: 2.0.1123.0
CodeBase: file:///C:/Archivos%20de%20programa/Creedox/Creedox%20Seguimiento%20de%20Expedientes/Janus.Windows.GridEX.v2.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Por lo que veo tu estas utilizando controles de terceros, no los standard de VS, entonces lo que ue suicede es que hay alguna dll o algún archivo xml que utilizan los controles que tu estas utilizando que no se copiaron o se instalaron al momento de copiar o instalar en el PC que no te funciona.
Ok voy a ver los archivos de la barra de progreso y si es de terceros, de ultima voy a probar cambiando el componente por defecto de visual studio 2005.
Ahora te hago una pregunta en la pc de arriba como anda bien y en la de abajo no si uso el mismo instalador ¿?
Puede ser que ya tenia instalado lo que le hace falta al Pc de abajo, Puede ser alguna librería del sistema operativo, ¿ambos sistemas son el mismo o son diferentes?
En la pc de arriba con windows xp sp2 anda bien y en la de abajo es windows xp también. Es el mismo pero de el caso que como desarrolle en el pc virtual 2007 en windows xp el servidor tiene el mismo nombre que en la pc de arriba o sea sgo.dbservert y en la pc de abajo no tengo el servidor de base de datos y se llama sgo-dbservert2 y accedo en forma remota en el caso de la pc de arriba localmente porque tengo el servidor ahí.
Pero eso no tiene nada que ver con el componente si el instalador es el mismo.
Saludos
El problema con los componentes es que a veces necesitan alguna dll adicional a la que uno adiciona como referencia y en el instalador esta dll no se adiciona a los archivos del instalador de allí que no te funcione en una y en otra si.
Si lo quieres comprobar instala el componente en el Pc en donde no te funciona y veras que te va a funcionar la aplicación. Esa es mi apreciación.
Hola acabo de descubrir algo, probé instalar la aplicación con el .xml faltante en la pc de arriba pero sin el servidor de base de datos y me da el mismo error y sabes lo que creo que pasa, es que de abajo no esta encontrando el servidor porque si yo instalo el servidor de base de datos arriba me anda y ahora lo baje al servidor y me esta dando el mismo error.
Ahora debería usar el numero de IP mejor en la conexión en lugar de el nombre de la PC ¿?
Saludos
Si utiliza mejor la IP, a veces la resolución de nombres no funciona muy bien para los servidores de SQL.
Cambio solo el nombre SGO-DBSERVERT POR LA IP ¿? Es fija así que no hay tanto drama. Digo el resto de la connection strings la dejo igual ¿? Nunca lo hice siempre use los nombres por eso te pregunto.
Saludos
Si, solo el nombre del servidor por la IP, y en estos casos la IP debe ser fija.
Ok, te aviso como anda voy a probar esto y te comento. Muchas gracias no foy terminada la pregunta todavía.
Solo una cosa más opinas que puede ser esto por el error ¿? O que pensás ¿?
Estoy canbiando el control de barra de progreso porque ya logro desde la pc de abajo poder conectar con el servidor de arriba pero el error me sigue dando y es el control porque modifique unas cosas y me da en otro lado solo donde esta ese control.
Ahora sabes como puedo usando el progressbar del visual studio por defecto que trae y un label, porque quiero que aparezca un porcentaje del progressbar arriba de la barra y para ello pongo fondo transparent al label pero al llegar el color del progressbar se superpone con el color del label.
SAludos
Se me ocurre que le pongas el color transparente al label después de actualizado el control del progress bar, antes de salir del evento en donde actualizas el valor del porcentaje.
Respuesta
-1
El problema que tienes es simple, las políticas de seguridad de .net restringen la ejecución de código que no este en el equipo local a menos que indiques lo contrario. Existe el comando caspol con el cual asignas estos permisos. Léete la documentación del mismo que existe en el msdn de Microsoft.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas