Tengo lo que debería ser una cosa simple, pero mi desconocimiento .NET web y de los programas está impidiendo a mí. Soy un directo de la vieja escuela programador de C que ha sido de programación ASP y ASP.NET últimamente para un sitio de comercio electrónico.

Tengo un programa ASP que se sincroniza 2 bases de datos. También tengo un VB.NET programa compilado hacia abajo a un archivo EXE que se llena la base de datos de origen antes de la sincronización ocurre. En la parte de atrás de mi mente sé que debería ser capaz de vincular la VB & ASP .Programas de la RED juntos desde que el poder de .NET. Alternativamente, si podía ejecutar el EXE desde ASP sería igual de bien para mi proyecto. Tengo la fuente a ambos programas. La secuencia de comandos ASP fue escrito con un editor de texto – VB fue en VB 2008 Express.

Por favor, asumir que no saben nada de la vinculación de las asambleas y tal, pues yo lo que no acabo de leer que en un artículo. Prefiero ASP pero si es necesario, yo podría utilizar el ASP.NET script para lanzar el ejecutable. El código es el legado de ASP y VBScript para que todos nuestros ASP.NET cosas es la VB en su sabor. C# hace que mi otro programador duele la cabeza así que por su bien este tendrá que permanecer VB.

Hay una forma relativamente fácil de lanzar el ejecutable pre-sincronización programa y hacer que se ejecute cuando el ASP sincronización de secuencia de comandos se inicia?

El servidor de MS Windows Server 2003 SP2 /IIS 6.0 /la .NET versión es 2.0.50727.3603. Gracias!

Por el camino – me encantaría «aprender a usar .NET correctamente» pero el tiempo es corto para este proyecto y en profundidad de la investigación que tendrá que esperar.

EDICIÓN: Aarón la respuesta de abajo me pone la mayor parte de el camino a la solución, pero estoy consiguiendo:

Detalles De La Excepción: System.ComponentModel.Win32 Excepción: Acceso denegado

Error de origen: Línea 17: process1.Start();

Ideas a nadie?

SOLUCIÓN: Aarón la respuesta de abajo más el conocimiento de que ~/en MapPath es la raíz virtual de la página web y el archivo a ejecutar es la relativa a que.

InformationsquelleAutor Deverill | 2009-12-28

2 Comentarios

  1. 8

    //Crear Una instancia de la clase de Proceso responsable de iniciar el proceso recién.

    System.Diagnostics.Process process1 = new System.Diagnostics.Process();

    //Establecer el directorio donde reside el archivo

    process1.StartInfo.WorkingDirectory = Request.MapPath("~/");

    //Establece el nombre del archivo el nombre del archivo que desea abrir

    process1.StartInfo.FileName = Request.MapPath("foo.exe"); 

    //Iniciar el proceso de

    process1.Start(); 
    • Ok, fuera de los bloques de salida, pero ahora me sale esto: Detalles de la Excepción: System.ComponentModel.Win32Exception: Acceso denegado Error de Origen: Línea 17: process1.Start(); Ideas?
    • Yo diría que es más probable que sea un problema de permisos. Por defecto no quieren que las peticiones web a ser capaz de salir y ejecutar archivos en el servidor web. Asegúrese de que el archivo es accesible por el usuario/grupo el servidor web se está ejecutando como (pero asegúrese de que no es escribible).
    • Mi ASP.NET Máquina de la Cuenta y la Cuenta de Invitado de Internet, tanto de Lectura/permisos de Ejecución en el archivo ejecutable. Me dio «Todo el mundo» Leer/permisos de Ejecución pero que no ayuda tampoco.
    • Asegúrese de que tiene permiso en el directorio.
    • en este enlace dispone de cierta información sobre la configuración de los permisos correctamente support.microsoft.com/default.aspx?scid=kb;en-us;555134
    • Perfecto, Aarón! Todavía tengo la culpa, sino que se está ejecutando como se ve en el Administrador de Tareas. Un millón de gracias!

  2. 2

    Si usted tiene la fuente para, a continuación, puede abrir el proyecto para el EXE y copiar la funcionalidad a una clase nueva de la biblioteca, a continuación, hacer referencia a esta clase de la biblioteca en la web de la aplicación y llamar al método que hace la base de datos de llenado de la aplicación web.

    • Tal vez si yo fuera más sofisticados que yo podía hacer esto, pero como me temo que es por encima de mi cabeza. El ASP.NET he aprendido ha sido a partir de un viejo ASP programador que piensa que el IDE es una extranjera cosa para las personas que no saben programar. Lo sé, tonto, pero me temo que como yo estaría perdido la referencia a las cosas en el ASP lado. Gracias! Lo tendré en cuenta para cuando tengo que aprender a usarlo correctamente!

Dejar respuesta

Please enter your comment!
Please enter your name here