Usuario
Problema para ejecutar .bat desde el servidor

Pregunta
-
Hola, soy nueva en esto de los foros... espero que alguien me pueda ayudar.
Estoy intentando ejecutar un archivo .bat desde vb.net.
El siguiente fragmento es la función que estoy usando para tal fin --->
Protected Sub Bt_Ejecutar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bt_Ejecutar.Click
Dim resp As String
resp = crear_texto()
If resp = 0 Then
Dim i As Integer
Try
Dim proceso As New Diagnostics.Process()
proceso.StartInfo.FileName = nombre_archivo --> esta es una variable global
proceso.Start()
Catch D As Exception
Dim str = D.Source & ": " & D.Message
EnviarMensajeErrorHTML(Page, "Se ha encontrado un Error. " & str)
Exit Sub
End Try
Lb_Msg.Text = "El archivo se ejecutó exitosamente"
Else
Lb_Msg.Text = "No se pudo crear el archivo .BAT"
End If
End SubAl ejecutar la aplicación desde mi equipo funciona perfecto, pero al ejecutarla desde el servidor (windows server 2008) no ejecuta el .bat.....alguien tendrá alguna idea de que me falta o que estoy haciendo mal?
De antemano gracias!
Todas las respuestas
-
Hola Ingridg86
Es un problema de permisos. Yo probe en su momento obtener salidas... pero no recuerdo como lo configuraron los chicos de infraestructura (era una empresa que trabaja en el 2007)
- Capturar salida de un proceso: Ejemplo comandos básicos (ping, tracert, cmd /?, etc)
http://geeks.ms/blogs/fernandezja/archive/2007/09/10/capturar-salida-de-un-proceso-ejemplo-comandos-b-225-sicos-ping-tracert-cmd-etc.aspx
Hay un item en MS Support que te puede ayudar:
- No se puede iniciar un proceso de ASP.NET
https://support.microsoft.com/es-es/kb/555134/es
Que es modificar el servicio del IIS (mmm! habria que preguntar si otro lo hizo asi) ... la idea al servicio de WWW (o sea el IIS) darle el permiso de "Allow service to interact with desktop"
Una vez que cambies el servicio lo tendras que reiniciar para que tome la configuracion.
Avísanos si funciono..Pero no se que implicatorias de seguridad podrias tener! con esto...
Te estaba poor decir para probar con impersonar ASP.NET para que ejecute tu app (o tu codigo) con un usuario que tenga los permisos suficientes pero no lo probe asi que por eso no se si funcionaria para ejecutar un "bat/exe"
Dale una mirada aqui tambien
- System.Diagnostics.Process.Start not work fom an IIS
http://stackoverflow.com/questions/4679561/system-diagnostics-process-start-not-work-fom-an-iis
Espero que te sirva de ayuda o guia.
Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja
- Capturar salida de un proceso: Ejemplo comandos básicos (ping, tracert, cmd /?, etc)
-
hola
como validas que el bat no se ejecuta en el servidor ?
defines algun try..catch para capturar si se genera algun error
que contiene la variable "nombre_archivo" ? es el nombre del bat o la ruta fisica completa
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
hola, la variable "nombre_archivo" contiene la ruta física completa donde esta alojado el .bat esta la obtengo el la función "crear_texto()" que se encuentra arriba.
Hasta ahora solo se que en el servidor no se ejecuta el .bat porque no me genera el archivo .bak (backup de la base de datos) que debería generar ... pero cuando lo ejecuto manualmente desde el servidor si lo hace ( es decir, que el arcivo .BAT ESTA BIEN)
espero haberme explicado bien y que me hayas podido entender.
-
Hola soy yo otra vez, no he logrado dar con la solución... pero me sirvió mucho el código para capturar salida de un proceso... al implementarlo me arroja el siguiente error
------------------------------------------------------ERROR ------------------------
c:\windows\system32\inetsrv>SQLCMD -E -S SVR_DESARROLLO\SVR_DESARROLLO -Q "BACKUP DATABASE Bd_SAUP_DESARROLLO TO DISK='d:respaldos\respaldo13032015.BAK'"
Mensaje 916, Nivel 14, Estado 1, Servidor SVR_DESARROLLO\SVR_DESARROLLO, L¡nea 1
La entidad de seguridad de servidor "IIS APPPOOL\DefaultAppPool" no puede tener acceso a la base de datos "BD_SAUP_DESARROLLO" en el contexto de seguridad actual.
Mensaje 3013, Nivel 16, Estado 1, Servidor SVR_DESARROLLO\SVR_DESARROLLO, L¡nea 1
Fin an¢malo de BACKUP DATABASE.
--------------------------------------------------------------------------------------------------------
PERO LA VERDAD NO SE COMO DEBO CONFIGURAR EL IIS PARA QUE ME PERMITA EL ACCESO A LA BASE DE DATOS.... ALGUNA SUGERENCIA?