Тёмный

Crear una aplicación de servicio de Windows en Visual Studio C# 

David Santafe
Подписаться 2,8 тыс.
Просмотров 75 тыс.
50% 1

Permiten crear aplicaciones ejecutables de larga duración, que se ejecutan en sus propias sesiones de Windows. Estos servicios pueden iniciarse automáticamente cuando el equipo arranca, se pueden pausar y reiniciar, y no muestran ninguna interfaz de usuario.

Опубликовано:

 

16 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 113   
@ManuelMartinez-ye3mb
@ManuelMartinez-ye3mb 2 месяца назад
Conocimiento muy valioso. Muchas Gracias!
@luiscvargas2011
@luiscvargas2011 4 года назад
Tremendo video, muy didáctico y bien explicado. Muchísimas gracias por compartir tus conocimientos. Saludos desde Panama
@carlosr.hernandeza.316
@carlosr.hernandeza.316 4 года назад
Excelente Video Tutorial!!! Explicado a Detalle. Muchas Gracias por tu tiempo, me ha servido mucho.
@thebroki6684
@thebroki6684 2 года назад
EXCELENTE TUTORIAL MASTER, MUCHAS GRACIAS.!!!
@JohnQuezadaHuayamave
@JohnQuezadaHuayamave 5 месяцев назад
Excelente Video amigo, me gusto mucho
@matiascornejofontaine1351
@matiascornejofontaine1351 4 года назад
Muy buen video. Excelente Tutorial y muy didáctico.
@mavericktop14
@mavericktop14 3 года назад
Excelente Video Tutorial, gracias por compartir tú conocimiento!!!
@dsantafe
@dsantafe 3 года назад
Con mucho gusto @Jaime
@mavericktop14
@mavericktop14 3 года назад
@@dsantafe sabes al intentar agregar instalador, me envia el siguiente error "El nombre del servicio contiene caracteres no validos, esta vacio o es demasiado largo (longitud max.= 80)" y en diseño del proyectInstaller no aparece ningun control para configurar, que puede ser el problema?'?
@dsantafe
@dsantafe 3 года назад
Hola @Jaime, primero seria revisar el nombre si definitivamente supera los 80 caracteres ver cómo lo puedes abreviar, de pronto te restringe el configurar el projectInstaller por lo mismo.
@sergioalejandrocanon4653
@sergioalejandrocanon4653 3 года назад
Excelente video compañero, muy bien explicado ...
@dsantafe
@dsantafe 3 года назад
Gracias. Saludos
@jafetumana1888
@jafetumana1888 2 года назад
Excelente video, me ayudaste mucho, gracias.
@caposar1
@caposar1 3 года назад
Excelente video tutorial, Muchas Gracias.
@dsantafe
@dsantafe 3 года назад
Con gusto
@mauricioalangonzalezrazo6180
@mauricioalangonzalezrazo6180 7 месяцев назад
master muchas gracias
@videojuegosdesarrollo7790
@videojuegosdesarrollo7790 5 лет назад
Amigo, Muy bien explicado. Gracias.
@leonardodanielzaragozamata4836
@leonardodanielzaragozamata4836 3 года назад
Excelente video bro, me faltaba como establecer la configuación del tipo de inicio. Felicidades! Si me permites opinar, creo que podrías dividir éste vídeo en partes y así tener vídeos más cortos y llegar más fácil a los usuarios. De casualidad sabrás si se puede hacer el instalable pero para distribuirlo como click once? Gracias y Saludos
@oswaldoespinosa9708
@oswaldoespinosa9708 4 года назад
Gracias muy valido!!
@marcomadn
@marcomadn 4 года назад
Excelente explicación David.
@alexxhhee.8198
@alexxhhee.8198 3 года назад
Muy buen video , gracias!!
@mixerslp
@mixerslp 5 лет назад
Muy buen video, felicitaciones!
@amadojimenez7625
@amadojimenez7625 3 года назад
Excelente, muy claro y sin desperdicio. Soy nuevo en el desarrollo, me gustaría saber como puedo incluir varias rutas de origen.
@miguelcastillo7346
@miguelcastillo7346 2 года назад
Gracias carnal, muy util.
@jonathanaguilar8332
@jonathanaguilar8332 5 лет назад
Excelente David. Saludos
@joanmunt
@joanmunt 5 лет назад
Parce muy buen video, gracias por compartir conocimiento.
@aaronarenasmartinez3511
@aaronarenasmartinez3511 2 года назад
Excelente video, tenia algunas dudas con respecto a los servicios, sobre ciertas propiedades y clases que se generan. Saludos desde Guanajuato.Mexico
@renc83
@renc83 4 года назад
excelente me ayudo bastante...
@dsantafe
@dsantafe 4 года назад
Excelente!
@bdowns
@bdowns 2 года назад
MUY BUENO!
@rfarmerlh
@rfarmerlh 5 лет назад
Hola buenas noches. Muchas gracias
@dsantafe
@dsantafe 5 лет назад
Hola Juan, con mucho gusto. Te invito a ver los nuevos cursos del canal de ASP.NET MVC y ASP.NET Core.
@gunkingplay
@gunkingplay 2 года назад
Fantástico
@camiloandresguzmanlozano1400
@camiloandresguzmanlozano1400 2 года назад
Como hago para que me aparezca el control timer que se necesita solo me aparece el tipo windows forms
@dragomo0797
@dragomo0797 7 месяцев назад
de igual manera me pasa
@victorcuellar8513
@victorcuellar8513 4 года назад
Gracias, me sirvio mucho
@dsantafe
@dsantafe 4 года назад
Excelente!
@FranKairos
@FranKairos 11 месяцев назад
Genial, Gracias!!
@luiscolunga6466
@luiscolunga6466 4 года назад
Muchas gracias por tu aporte David, ya he visto este tutorial varias veces porque le encontré muchas aplicaciones a lo que yo realizo, tienes redes sociales para seguirte?
@79diegolo
@79diegolo 3 года назад
maestro!!
@dsantafe
@dsantafe 3 года назад
Saludos!
@poluxMTZ
@poluxMTZ 4 года назад
Gracias
@LUISEGONZALEZL
@LUISEGONZALEZL 4 года назад
si el servicio se llamó ServicioWindows ¿por qué lo buscaba como archivos? ahí se ve en el 45:01
@dsantafe
@dsantafe 4 года назад
Hola @Luis, tienes mucha razón, una falla al momento de grabar
@luiscvargas2011
@luiscvargas2011 4 года назад
gajes del oficio, hast a mi se me fue el nombre. jaja
@DavidBM250588
@DavidBM250588 5 лет назад
Pregunta: El servicio de windows se ejecuta como x64? Hay alguna forma de que se ejecute como x86? Te comento porque al momento de crear el proyecto de servicio le cambie la compilacion a x86 y el instalador por igual tomo el TargetPlatform como x86 esto porque consumo una libreria COM (especificamente del Contpaq) que solo funciona en proyectos x86, al momento de hacer las pruebas antes de instalar el servicio funcionaba muy bien pero al momento de iniciarlo como servicio marco el error correspondiente a la version de compilación...
@DavidBM250588
@DavidBM250588 5 лет назад
Ya se ejecuto le cambie el Account del servicio a Local System. Muy buen tutorial!
@CarlosAlbertoPintoHurtado
@CarlosAlbertoPintoHurtado 3 года назад
Excelente Tutorial FELICITACIONES. Como podría configurarse para que se ejecute ciertos dias de la semana?
@dsantafe
@dsantafe 3 года назад
Hola @Carlos, en el timer puedes configurar que dependiendo de la fecha actual del sistema extraiga el día y tener en el app.config los días permitidos o tenerlos parametrizados en base de datos
@CarlosAlbertoPintoHurtado
@CarlosAlbertoPintoHurtado 2 года назад
@@dsantafe Muchas gracias por la respuesta.
@ticomaster1388
@ticomaster1388 3 года назад
David, muchas gracias por el video. Lo segui al pie de la letra y funciona bien en desarrollo, pero luego de instalarlo, lo inicio desde la lista de servicios de windows, y figura "en ejecucion" pero no hace nada. Hice otro sencillo, donde ejecuta con un process.Start un archivo txt de la pc, y ejecuta un MessageBox.Show para ver si hace algo, y no funciona, simplemente no hace nada. Reitero que en desarrollo mientras lo pruebo en el visual studio funciona bien, pero al instalarlo no hace nada. Se te ocurre que puede ser?
@dsantafe
@dsantafe 3 года назад
Hola, revisa en el visor de eventos si hay alguna advertencia o error del servicio que estás ejecutando. Adicional revisa si tienes permiso sobre las carpetas indicadas o recursos y que el servicio esté ejecutando como administrador. Me cuentas como te va.
@fernandariveracardenas3611
@fernandariveracardenas3611 3 года назад
@@dsantafe Hola David presento el mismo problema, si se presenta un error en el visor de eventos, el cual es "No se puede iniciar el servicio. El proceso del servicio no puede conectar con el controlador del servicio". Te agradezco mucho tu ayuda!!
@dsantafe
@dsantafe 3 года назад
Hola @Fernanda, te comparto información relacionada con el tema, docs.microsoft.com/es-es/dotnet/framework/windows-services/how-to-start-services y también el siguiente enlace, www.it-swarm-es.com/es/c%23/el-proceso-de-servicio-no-pudo-conectarse-al-controlador-de-servicio/970339023/, si necesitas alguna ayuda adicional puedes escribirme al correo ingsantafedavid@gmail.com
@percyhuayllahuamanpanihuar5618
@percyhuayllahuamanpanihuar5618 2 года назад
MUY BUENO EL VIDEO .. ME GUSTAIA SABER COMO PUEDO IMPORTAR DESDE FTP A UNA BASE DE DTAOS SQL ALGUNA GUIA ...POR FIS
@dsantafe
@dsantafe 2 года назад
Hola, cuando menciona un FTP es para conectarte y extraer algún archivo que posteriormente vas a procesar y extraer datos para insertar a SQL?
@percyhuayllahuamanpanihuar5618
@percyhuayllahuamanpanihuar5618 2 года назад
@@dsantafe claro que busque el archivo prueba.csv por fa vor alguna guia
@eduar2083
@eduar2083 3 года назад
Hola, gracias por el video. ¿Puedo tener 2 servicios Windows en el mismo proyecto y cada uno con su propio instalador o es que debo crear otro proyecto de Servicio windows?
@dsantafe
@dsantafe 3 года назад
Hola @Edinson, puedes tener 2 servicios Windows en la misma solución, la solución es tu contenedor, por lo tanto puedes crear tanto proyectos web.. móviles.. apis y servicios, pero en proyectos diferentes
@danielgaray3051
@danielgaray3051 6 лет назад
Excelente, Gracias!
@dsantafe
@dsantafe 6 лет назад
Con gusto, y atento a los nuevos videos!
@jesusalfonsolobosoto8970
@jesusalfonsolobosoto8970 5 лет назад
Muchas gracias por la explicación. Si es posible, me gustaría que me pudieras ayudar explicándome como poder ejecutar el servicio a una hora especifica del día y no cada determinado tiempo como esta configurado actualmente.
@dsantafe
@dsantafe 5 лет назад
Hola Jesus, podrias hacer lo siguiente, una es que crees un archivo batch que inicie el servicio algo como NET stop NET start y crear una tarea de windows a una hora especifica del día y solo se ejecute una vez y luego detenerlo, la otra y la que yo recomendaría es que dentro del metodo que ejecutas cada cierto tiempo de acuerdo al Timer pongas una validacion que si la fecha del sistema es igual a una hora especifica permita ingresar al bloque de codigo de lo contrario que retorne, esto lo harias con una bandera para indicarle que si cumple con la hora no permita que ingresen mas ejecuciones paralelas y posterior a ello la dejas en false, asi tu proceso estara corriendo cada cierto tiempo pero solo ingresara a tu bloque puede ser dentro de un if cuando se cumpla la hora, y esos valores los dejas configurados en el app.config cosa que puedas jugar con ellos depues sin tener que recompilar.
@jhonbenavides5733
@jhonbenavides5733 Год назад
Hola David, una consulta. Necesito crear un windows service que monitoree si una aplicación de consola se esta ejecutando se puede colocar un Timer con la frecuencia de tiempo y validar si se esta ejecutando la aplicación, si no se esta ejecutando la ejecuto (con eso no tengo problema), el detalle esta como lo valido si se esta ejecutando o no? el .exe
@clinicaevolucion2020
@clinicaevolucion2020 4 года назад
Una pregunta, es posible crear un servicio de windows que este monitoreando los puertos COM de la computadora y desde un aplicación Web poder invocarlo por ejemplo para abrir una puerta electrónica?
@dsantafe
@dsantafe 4 года назад
Hola @Americo, es posible crear el servicio windows tal como mencionas, sin embargo invocarlo desde una aplicación web no, lo que puedes hacer es escribir en una tabla de base de datos desde la webapp y desde el servicio estas leyendo cada cierto tiempo esa tabla, y a través de una bandera o un indicador notificarle que realice la apertura.
@clinicaevolucion2020
@clinicaevolucion2020 4 года назад
Una par de preguntas ¿Esta base de datos que mencionas debe ser local en el lado del cliente? ¿Quien debe leer esta base de datos debe ser el servicio windows y de acuerdo a esta bandera abrir la puerta?
@dsantafe
@dsantafe 4 года назад
La base de datos puede estar en cualquier infraestructura, sea local o externa, finalmente con la cadena de conexión es que resuelves el tema. Quien debe estar leyendo la base de datos... el servicio windows que es el que se está ejecutando constantemente y es el encargado de conectarse a la puerta electronica.
@gustavofuentessanchez103
@gustavofuentessanchez103 4 года назад
Excelente video amigo, todo muy claro y coherente, gracias!! PD. En el min. 31:23 se ve el programa "CRforVS_13_0_14.exe" esa versión en especifico no la he podido conseguir y de verdad que la he buscado, si aun la tuvieras me la podrías compartir por favor por favor 🙏?
@dsantafe
@dsantafe 4 года назад
Hola @Gustavo, debo buscar la versión de Crystal que aparece en el vídeo porque si he hecho algunas actualizaciones entonces no la tengo a la mano pero tan pronto como la encuentre la comparto por github o algún enlace
@gustavofuentessanchez103
@gustavofuentessanchez103 4 года назад
@@dsantafe Muchísimas gracias, estaré atento a tu respuesta.
@kelyquevedo7480
@kelyquevedo7480 3 года назад
Hola David, fijate que estoy replicando tu video pero me tira un error de system.security.securityexception y dice que no se encontro el origen :( La verdad esta es la primera vez que hago un servicio de windows y no se si tu me podrias ayudar con esto, de antemano muchas gracias y muy buen video, todo bien explicado. Saludos.
@dsantafe
@dsantafe 3 года назад
Hola @Kely, intenta firmando los manifiestos de ClickOnce. Para ello vas a las propiedades del proyecto y tag Firma. También te puedes guiar con este video ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-j7beBfVCe6Q.html
@PedroMoreno-sv4ye
@PedroMoreno-sv4ye 2 года назад
@@dsantafe esto es lo que me hacía falta para que pudiera ejecutar todo el programa , muchas gracias por el link , desde el visor de eventos no me registraba nada , gracias nuevamente
@sebalopez84
@sebalopez84 4 года назад
Hola. Cuando pasa por el event log me da error. Como que rendirá que ser administrador del equipo. Estoy como administrador del equipo y me sigue dando error. Como se soluciona eso?
@dsantafe
@dsantafe 4 года назад
Hola @Sebastian, mas que estes como administrador del equipo es que cuando estes ejecutando el servicio desde vs lo hayas ejecutado como administrador, y que cuando este instalado ya el servicio le des los permisos para escribir en el visor de eventos.
@Gious081
@Gious081 4 года назад
Hola buenas tardes, antes que nada muy buen video ; le segui minuto a minuto. Tengo una duda, cuando compilo el proyecto si funciona realizando copias tanto de forma local como por red; pero cuando instalo el servicio me aparece que no tengo permisos para escribir en esas carpetas. Las carpetas estan compartidas con permisos de administrador y en el equipo origen si me voy a la ruta puedo copiar sin problemas y como dije anteriormente cuando ejecuto el servicio desde VBS; se copia sin problemas. marca error de perimisos cuando instalo el servicio. Me puedes ayudar por favor?
@dsantafe
@dsantafe 4 года назад
Hola @Giovanni, asegúrate que el servicio de windows al momento de iniciarlo se ejecute como administrador.
@rene_an
@rene_an 4 года назад
Excelente video! Disculpa hay algún correo donde pueda contactarte, tengo unas dudas acerca del servicios
@diegoyacelga4957
@diegoyacelga4957 2 года назад
Hola David, Como quedaría si quiero que se ejecute una vez al día?
@dsantafe
@dsantafe 2 года назад
Hola Diego, puedes poner una bandera de ejecución una vez al día directo en tu código e irla refrescando de acuerdo al paso de los mismos.
@VANTYCSolutions
@VANTYCSolutions 5 лет назад
Gracias Amigo 👍👍👍 me salvaste! 🙏🙏🙏 ¿Es posible colocar el intervalo del timer dentro del app.config? Porque sera que si se da de alta el servicio pero no queda iniciado y hay que arrancarlo a mano, pese a que el tipo de inicio lo puse como Automático?
@dsantafe
@dsantafe 5 лет назад
Hola, sí es posible colocar el intervalo del timer dentro del App.config de manera que no quede fijo sino que puedas modificarlo directamente en el archivo, al momento de iniciar el servicio windows leerias la variable e inicias la ejecución del timer con el .start() La primera vez que lo haces y generas el instalador del servicio queda como inicio manual por cuestiones de seguridad del windows y ya una vez lo modifiques directamente en el administrador de servicios y lo pongas como automatico de ahi en adelante debe iniciarse junto con los demas programas establecidos.
@VANTYCSolutions
@VANTYCSolutions 5 лет назад
​@@dsantafe Por alguna razón en la maquina de desarrollo no quedaba, peto sí queda automático ya cuando haces el deployment en las maquinas de producción. Para fijar el timer investigué y uso la propiedad timer.Interval para fijarla así timer.Interval = 1000 * 60 * tiempo, por último tiempo lo leo así del appconfig tiempo = Convert.ToInt32(ConfigurationManager.AppSettings.Get("TiempoEnMinutos")); . Gracias amigo. stackoverflow.com/questions/12936145/c-sharp-windows-service-timer-app-config-change-in-runtime
@dsantafe
@dsantafe 5 лет назад
Exacto, esa es la manera. Me alegro que hayas podido desarrollarlo.
@carlosrojasvega5169
@carlosrojasvega5169 3 года назад
Estoy instalando visual studio 2017 pero no sé cual de cargas de trabajo que me ofrece el instalador debo seleccionar para poder trabajar para desarrollar servicios windows, alguien sabe?
@dsantafe
@dsantafe 3 года назад
Hola @Carlos, debes seleccionar la opción Desarrollo de escritorio de .NET, cuando vayas a crear el proyecto buscas servicio windows y te aseguras que sea C# y no VisualBasic.
@JaimeMndz
@JaimeMndz 5 лет назад
HELP me sale el siguiente error: No se admite el formato proporcionado de la ruta de acceso.
@dsantafe
@dsantafe 5 лет назад
Hola @Jaime, puedes ver en tiempo de ejecución el valor de la variable donde estas indicando la ruta y copiarla en el explorador de archivos para determinar si es la correcta o donde se esta dañando.
@JaimeMndz
@JaimeMndz 5 лет назад
@@dsantafe ya lo arreglé en el file.copy estaba mandando archivo.fullName y solo era archivo.Name
@dsantafe
@dsantafe 5 лет назад
Hola @Jaime, perfecto que lo hayas podido solucionar, felicitaciones y a seguir programando!!!
@lulizeth
@lulizeth 4 года назад
Muy buen vídeo ¿Cómo hago para tener en plantilla las opciones "Windows", "Escritorio clásico"?
@dsantafe
@dsantafe 4 года назад
Hola @Lulizeth, no entiendo muy bien tu pregunta, haces referencia al aspecto de tu Windows? en cuanto a personalización?
@lulizeth
@lulizeth 4 года назад
David Santafe lo qué pasa es que al principio cuando doy “ nuevo proyecto” no me aparecen las mismas opciones
@dsantafe
@dsantafe 4 года назад
Hola @Lulizeth, que version de vs tienes? la otra opción que puede estar pasando es que no tengas instalado las opciones que necesitas.
@manuelalfonsoo
@manuelalfonsoo 3 года назад
Hola, muchas gracias por el video. Me funciona perfectamente el código en Visual Studio copiando los archivos, pero al momento de crear el ejecutable , instalar el servicio y iniciarlo posteriormente me aparece el mensaje "Acceso denegado a la ruta de acceso 'C:\Users\..\Origen'." en el visor de eventos ¿Cómo puedo solucionar esto? Saludos.
@dsantafe
@dsantafe 3 года назад
Hola @Manuel, intenta poniendo el servicio a ejecutarse como administrador desde la consola de servicios, o dandole permisos a la carpeta. Ten en cuenta que la carpeta está publicada en C:
@manuelalfonsoo
@manuelalfonsoo 3 года назад
@@dsantafe Lo he arreglado, muchas gracias :)
@dsantafe
@dsantafe 3 года назад
Genial @Manuel
@ismaelcastillo5792
@ismaelcastillo5792 5 лет назад
hola buen video pero tengo un problema y es que cuando ejecuto el servicio me sale este error cuando va a escribir en el visor de eventos : System.Security.SecurityException: 'No se encontró el origen, pero no se pudo buscar en algunos o todos los registros de eventos. Para crear el origen, necesita permiso para leer todos los registros de eventos con el fin de comprobar que el nuevo nombre de origen es único. Registros inaccesibles: Security.' por favor podrias ayudarme
@dsantafe
@dsantafe 5 лет назад
Hola Ismael, estas ejecutando el proyecto como administrador? puede ser debido a eso porque esta escribiendo en el visor de eventos.
@ismaelcastillo5792
@ismaelcastillo5792 5 лет назад
@@dsantafe hola david, bueno no he intentado eso, lo hare y te dare aviso muchas gracias
@ismaelcastillo5792
@ismaelcastillo5792 5 лет назад
@@dsantafe ya hice la prueba agregue un archivo manifiesto con la configuración de administrador y ya funciona muchas gracias
@dsantafe
@dsantafe 5 лет назад
Hola @Ismael, perfecto!!!
@tatianaperea5763
@tatianaperea5763 5 лет назад
Me Pueden Ayudar Me sale el mismo error por favor
@ae.h.h
@ae.h.h Год назад
Agregar archivo de servicio al proyecto principal
@w.levirosales8380
@w.levirosales8380 2 года назад
Buen vídeo! Una consulta, cuando yo ejecuto mi programa cae en la exepción con este mensaje: system.security.securityexception: 'the source was not found, but some or all event logs could not be searched. to create the source, you need permission to read all event logs to make sure that the new source name is unique. inaccessible logs: security, state.' Si comento las líneas de código "EventLog.WriteEntry" me ejecuta normal y si hace el copiado de los archivos. Alguien podría indicarme como darle permisos de escritura?
@nicolasgr2000
@nicolasgr2000 7 месяцев назад
Se debe ejecutar como administrador el Visual Studio para que eso no pase, en teoria los servicios se ejecutan a nivel de usuarios con permisos de Administrador
Далее
Encriptacion MD5 Y 3DES desde ASP.NET C#
34:29
Просмотров 4,4 тыс.
Intro to Windows Forms (WinForms) in .NET 6
1:35:50
Просмотров 225 тыс.
Multiple Processors and Multiple Cores
46:09
Просмотров 6 тыс.