This guy deserves more subscribes and more views. He is providing very great, useful and easy to understand content . Keep up the good work Tim and thank you very much for sharing your knowledge.
Tim, if we wouldn't have Covid currently, I would kiss you: At Minute 8:00 you made clear to me, what several (text) tutorials about this topic missed before: It's an endless process and it restarts every second. You are a wonderful tutor !!!
FYI - Deleting the service and files is not necessary to update the executable. You can just stop the service, publish your changes, and then start the service up again. Aside from that this is an EXCELLENT tutorial!
@@IAmTimCorey That is a valid point although perhaps only really necessary once you're ready to deploy to production. During development and testing it seems a bit excessive, and I've had cases where deleting a service failed and the only resolution was to reboot. I guess I'm just a bit more gun shy about creating/deleting services more than absolutely necessary.
Tim, I've recently started work on a Windows Service project and I've been looking all over for examples on how to do it. By far, this has been the clearest example that I've seen. Thanks, Scott
Great video. Of note, if you are simply updating the service, you can stop the service, copy/replace the files and start the service. No need to uninstall.
Absolutely amazing video, I started my internship as C# developer today, the project that I'm working with have a lot of worker services this video is very useful.
THANK YOU! I watched your other video on services ~1 year ago and thought "that's interesting, but I don't think I'll use that"...At work I was just asked to write a simple monitoring tool for our other services and this came in immensely handy.
Previously we had to use Topshelf and code a lot for logging into a file. I'm glad to see its all getting standardized. Great topic, great teaching, great video.
I love the clarity with which you expose. I will use this new knowledge to create a database backup tool that replicates Mega and Dropbox backup. I have multiple clients using SQL Server Express and I need to maintain a good backup policy on each one. Thank you very much for the great content
great video Tim, also great content on your website. Keep up the good work. I hope people can make the difference between quality content like yours and other "made on the knees" content who just floods youtube and other chanels.
Absolutely great content. I loved how you start to really a beginner then you gradually progress to a more complete solution, adding log and configuring Windows Service. Loved it. Thank you so much for the great content.
Hi man, excellent tutorial and great & clear explanation! I'm evaluating create a windows service to check some tables in the db and I'll try to do that with net core 3.0 ! Thank you for sharing your knowledge! Cheers from Argentina!
i am new to c# and it's quite challenging for me. but i have discovered your channel and will study your material slowly by slowly. hopping to learn a lot
@@IAmTimCorey gRPC as well as GraphQL might interesting. Tim you are briiliant. I am coming off your Docker course and I must say it has been one of the courses that I have had. Keep it going.
Who knew? It just happens I am converting a console app / service that I wrote years ago from .NET Framework to .NET Core. I did the service bare metal using InstallUtil. That's fine, but It appears that this will accomplish the same thing in COre, and give me a Linux Daemon on top of it, with much simpler code. I am just lucky to have stumbled across this !!
What do you mean "add the installer"? You can run the command I showed on screen for installing the service on any machine. What are you looking for beyond that?
@@AllenMichaelsVlogs In the past, I was able to generate an MSI (Microsoft Installer) that would deploy the bits and set up services using Flexera Installshield. It might not work for the project type demonstrated here as their website doesn't list support for .net Core 3 yet but I suppose it's only a matter of time. Give that a look - it was very simple to set up the package once compiled.
Tim, it was very nice. Thank you. Please, send more videos about Worker Services, but now, working the advanced ways. Example: "Worker Services with Selenium automation"
Thank you, Tim. This is a very informative video. I watched it because I have a service that needs to run but I'm choosing to run it as a console app under the Windows Task Scheduler. I still wanted to explore my options though.
I used to use the console app as a Windows task scheduler but I've noticed that it pop up the command prompt everytime it run. Have u found a way to disable this?
Sir Your voice is marvelous , Every Student pray to get Teacher Like You, Sir I want to learn Xamarin but did not find any good tutorial about this can you provide some tutorial about Xamarin to get Started
When using classic WindowsServices for example, you just have to stop the service, recompile the service project with your changes and start the service again. You don't need to delete the deployment files or the delete the service. Just restart the service after recompile. Can we still use OnStop OnShutdown OnPowerEvent from ServiceBase? Very nice intro to Worker Services!
Brilliant. I have been evaluating whether .Net Core is a good fit for mixed Windows/Linux environment, which requires small microservices like this (not this simple). And you basically answered it. Thank you! Awesome stuff.
@@IAmTimCorey Wow! so quick response.. I really not expected this fast. Hats off to you Tim, our devs community must be loving you a lot. Love from India too 😘
Hi tim. May I know where'd the video that you made for console application that runs in background process? Really need helo about that. Love your tutorials tim
Great content as usual I can't skip a single video from your channel ! Do you think it would be a good idea or even possible to create a worker that can update a memory cache in the background when database changes occur ? Is such a concept possible with this ?
Thanks for all your videos and efforts on teaching C# with a great detail. Could you please also make a video about good books to read for C#? I would like to know what books you would recommend worth reading. Thanks in advance.
@@dsmyify did you read that book ? Is it like from beginner to advance, covering all topics in depth with good examples ? Because I heard that book when i was searching on google. In addition, i have seen "c# 7.0 in a nutshell: the definitive reference" multiple times. I m not sure cause I want to buy a book that is comprehensive and nearly up to date.
@@fatihduzenli5893 ~ it's an advanced book. It's about the CLR and how C# works under the covers. It's learning the underlying concepts of .NET. It is a good book. Makes you think about memory allocation and using the right types structures or classes, it takes about the difference between instance and type methods, and things like that.
0:00 - Intro 1:15 - Creating Demo Worker Service App 2:54 - What is a Worker Service 3:59 - Service App template code overview 9:32 - Service App code design using http client 20:15 - Showing log messages: Serilog NuGet references 22:22 - Showing log messages: Serilog configuration 25:00 - Showing log messages: Implementing Serilog 29:45 - Configuring Worker Service for Windows: WindowsServices NuGet 31:32 - Deploying the Service App 33:39 - Installing the Service using PowerShell 37:26 - Uninstalling the Service using PowerShell 39:24 - Updating, deploying, installing and uninstalling the Service 44:04 - Summary and concluding remarks
Instead of using this method of installing a service one can also use nssm. It supports better failure and recovery scenario's as well as logging console output. This way you can easily create a worker that is suitable as a pod in Kubernetes as well as a Windows service without needing serilog. Another thing: When you return from ExecuteAsync for whatever reason the service will not stop. If you want to stop the service from within the ExecuteAsync when an error occurs or something like that: Call StopApplication on IApplicationLifetime. Just add IApplicationLifetime as a parameter to the constructor of your worker and use that.
Windows services has the benifits of not needing extra software installed and has basic recovery. Also, having a service stop itself sounds like an anti-service? I would either have a service continue running in idle mode untill needed again or set up a scheduled task.
I want to warn people that if they use this 'BackgroundService' and the service enters a critical state - disk full, other network services not available, data corruption, disk read error, etc... - that IF you wanted to stop the service that you have to do more than return from ExecuteAsync. Without calling StopApplication your service will remain idle forever, but it keeps the service running - probably to cover the scenario of running multiple 'BackgroundServices'. Why would you want a service to stop itself in such a case? To take advantage of monitoring, alerting, fail-over mechanisme provided by Windows or Kubernetes, etc... Surely you don't have to use nssm. I used it to make .NET Core Worker work on Windows because we are working towards more and more deployments on a Kubernetes cluster, but not everything can run on it right now and for these new parts in legacy systems this could provide a solution. This prevents me overcomplicating the application with legacy features like logging to a file.
Hi Tim, I'm a hugh fan of your videos. Microservices are very popular nowadays. Could you make a video about dapr? I use it for a while and it would be very helpful for your followes too.
You can actually use hangfire inside of a service. Hangfire is more about scheduling where services are about running something continually in the background.
Thanks for your video. It's so in depth. Are you able to do a video on automating the deployment of a windows service? Eg Deploying from some generic CI/CD pipeline on some server and deploying the service to another server that may or may not have the service already running?
5:00 To be clear, there is no GUI... At least not directly. It may host a web server, for instance, but that's about it. It should, I think, generate some logging, maybe output to the Windows Event Viewer, which most service oriented admins ought to be familiar with for a long while now.
@@maxron6514 Not yet. I would love for you to post this video recommendation on Tim's Suggestion App - suggestions.iamtimcorey.com/. Tim just implemented a new feature so that you will get an email if/when Tim completes the recommendation.
Very useful. Please keep up the good work. Only thing I noticed that you could use string interpolation to make code more readable. instead of saying Log.info("Web Site Status: {statusCode}", statusCode); could do : Log.info($"Website Status: {statusCode} "); notice the '$'
Actually, there is a difference. I pointed it out briefly. If you do it my way, a structured logger like Serilog can pull out that data and store it separately so that you can query on it later in the logs (where statusCode = 401 or temperature > 50 would be examples). If you use string interpolation, you only get a string stored in your log statement so you would need to do a regex match to try to pull out the values.
I haven't made a service in .NET Core yet. But have a Template application that for .NET 2.5 or above. It uses the regular "Windows Services" project type. It can run in debug and display stuff on the console. But once installed as a service it will just run as normal. Also I can just run the exe and put "MyService --install" to put it in services... or "MyService --uninstall" to delete if from services... No third party software involved. I even ported it over to VB for a project I was working on for a company that was all VB.
tip: skip to 3:00, this is the context you need to know what you are looking at, then go back and watch how he creates it if you don't already know where it is in the new project menu
Hi Tim great video you mention the possibility to trigger the service based on an event in a database could you elaborate on that. Is that done on the DB side using events or sound really interesting. Love you r videos i get so much inspiration from this keep it up!
A worker service can monitor the database for changes by just calling a small query on a schedule. If something has changed, it can get the new data and do something. For example, if you had a People table, you could do a "select max(id) from People", which would return the last identifier issued. Let's say the first time it is called, you get back id number 10. If you run it again and you get back id number 12, you know that you have at least one new record. You can run "select * from People where id > 10" to get the new records.
Great video! Completely understood. The outstanding question I've got, though, is how or where do I pass a Cancellation token to end my service operation?
This guy deserves more subscribes and more views. He is providing very great, useful and easy to understand content . Keep up the good work Tim and thank you very much for sharing your knowledge.
I appreciate the kind words.
I totally agree. Great content :)
he needs to learn to summit mount point faster though. His videos has so much filler it takes forever to get to the point.
I’ve learned more from Tim in 6 months than I did in 6 years of college…
Great channel!
Tim, if we wouldn't have Covid currently, I would kiss you: At Minute 8:00 you made clear to me, what several (text) tutorials about this topic missed before: It's an endless process and it restarts every second.
You are a wonderful tutor !!!
Glad I could help!
FYI - Deleting the service and files is not necessary to update the executable. You can just stop the service, publish your changes, and then start the service up again. Aside from that this is an EXCELLENT tutorial!
True, but by deleting the files, you ensure you don't leave any scraps behind from the old application. It is a good practice to have.
@@IAmTimCorey That is a valid point although perhaps only really necessary once you're ready to deploy to production. During development and testing it seems a bit excessive, and I've had cases where deleting a service failed and the only resolution was to reboot. I guess I'm just a bit more gun shy about creating/deleting services more than absolutely necessary.
love your tutorials man. helping a lot in my job. love from Sydney
Awesome!
Tim,
I've recently started work on a Windows Service project and I've been looking all over for examples on how to do it. By far, this has been the clearest example that I've seen.
Thanks,
Scott
I am glad it was so helpful.
Great video. Of note, if you are simply updating the service, you can stop the service, copy/replace the files and start the service. No need to uninstall.
True, but uninstalling makes sure you remove all of the files.
The concepts are explained very clearly and in detail. The demo is simple yet powerful enough to grab the full concept.
Thanks!
Absolutely amazing video, I started my internship as C# developer today, the project that I'm working with have a lot of worker services this video is very useful.
Fantastic!
THANK YOU! I watched your other video on services ~1 year ago and thought "that's interesting, but I don't think I'll use that"...At work I was just asked to write a simple monitoring tool for our other services and this came in immensely handy.
I am glad it was so helpful.
Previously we had to use Topshelf and code a lot for logging into a file. I'm glad to see its all getting standardized. Great topic, great teaching, great video.
Glad it was helpful!
I love the clarity with which you expose.
I will use this new knowledge to create a database backup tool that replicates Mega and Dropbox backup. I have multiple clients using SQL Server Express and I need to maintain a good backup policy on each one.
Thank you very much for the great content
Awesome! I am glad to have helped.
Amazing work! I was asked during training at my job to create a windows service and this one covered everything in great detail! Thank you mr.Corey
You are welcome.
Excellent tutorial. Clear and easy to follow. Thanks a bunch Tim.
You are welcome.
Very very good! Beautifully articulated the context of use. You deserve far more views then you have!!
Thank you.
great video Tim, also great content on your website. Keep up the good work. I hope people can make the difference between quality content like yours and other "made on the knees" content who just floods youtube and other chanels.
I am glad you are enjoying my content.
Absolutely great content. I loved how you start to really a beginner then you gradually progress to a more complete solution, adding log and configuring Windows Service. Loved it. Thank you so much for the great content.
You are welcome.
Hi man, excellent tutorial and great & clear explanation! I'm evaluating create a windows service to check some tables in the db and I'll try to do that with net core 3.0 ! Thank you for sharing your knowledge! Cheers from Argentina!
Thank you!
A bit old thread here but the first time when I met worker service was trying to make Hangfire running in a Docker container :)
Watching this to upgrade a .NET Framework 4.5 windows service to .NET5. Great video!
Glad it helped!
Excellent delivery. Thank you.
You are welcome.
i am new to c# and it's quite challenging for me. but i have discovered your channel and will study your material slowly by slowly. hopping to learn a lot
Great!
I wanted to try background jobs in windows, and exactly that is covered here. Great material, clear and concise until the end!
Glad it was helpful!
Im study english only for you videos
It is a lot of information
Great!
Amazing Tutorial Tim!!
Thanks!
Awesome tim , amazing as always, hope to see one grpc service :)
Thank you! People have been requesting gRPC so I'll keep bumping it up the priority list.
@@IAmTimCorey gRPC as well as GraphQL might interesting. Tim you are briiliant. I am coming off your Docker course and I must say it has been one of the courses that I have had. Keep it going.
Great topic and tutorial. Very useful information. Thank you also for covering the uninstall service.
You are most welcome. Thanks for watching.
Hello Tim, thanks for the video, is very useful!
You are welcome.
This is one of my favourite videos. I really enjoyed it. Thanks, Tim. I'm going to automate everything.
Glad you enjoyed it!
Who knew? It just happens I am converting a console app / service that I wrote years ago from .NET Framework to .NET Core. I did the service bare metal using InstallUtil. That's fine, but It appears that this will accomplish the same thing in COre, and give me a Linux Daemon on top of it, with much simpler code. I am just lucky to have stumbled across this !!
I'm glad you found it. Yep, this should do all you want in a packaging that is easier to manage.
Absolutely fantastic! I wish there is a second part to this on how to add the installer.
What do you mean "add the installer"? You can run the command I showed on screen for installing the service on any machine. What are you looking for beyond that?
@@IAmTimCorey in my situation I would have a system admin do the installation and they want to use the installer and not the command tool
@@AllenMichaelsVlogs In the past, I was able to generate an MSI (Microsoft Installer) that would deploy the bits and set up services using Flexera Installshield. It might not work for the project type demonstrated here as their website doesn't list support for .net Core 3 yet but I suppose it's only a matter of time. Give that a look - it was very simple to set up the package once compiled.
Thank you for this great work. I will like to try the worker service to run some certain background services for my application. Thank you once again
You are welcome.
just wow thanks again Tim!
You are welcome.
Tim, it was very nice. Thank you. Please, send more videos about Worker Services, but now, working the advanced ways. Example: "Worker Services with Selenium automation"
I will add it to the list. Thanks for the suggestion.
Many thanks for this video, finally i get it how it all works!
Awesome!
A very understandable explanation. Great job sir!
Glad it was helpful!
Thank you, Tim. This is a very informative video. I watched it because I have a service that needs to run but I'm choosing to run it as a console app under the Windows Task Scheduler. I still wanted to explore my options though.
You are welcome.
I used to use the console app as a Windows task scheduler but I've noticed that it pop up the command prompt everytime it run. Have u found a way to disable this?
Sir Your voice is marvelous , Every Student pray to get Teacher Like You, Sir I want to learn Xamarin but did not find any good tutorial about this can you provide some tutorial about Xamarin to get Started
I am going to be covering Xamarin in a couple months.
@@IAmTimCorey Thanks Sir for quick reply
When using classic WindowsServices for example, you just have to stop the service, recompile the service project with your changes and start the service again. You don't need to delete the deployment files or the delete the service. Just restart the service after recompile.
Can we still use OnStop OnShutdown OnPowerEvent from ServiceBase?
Very nice intro to Worker Services!
Yeah, I just prefer to clean it out and start over. Otherwise, you might end up with artifacts from a previous installation. And yes, I believe we do.
Really appreciate the work you are putting into your content! :)
Thank you!
Thank you very much Tim! for all the knowledge you provide, your effort and time you invest to teach. Thank you very much!
My pleasure!
Brilliant. I have been evaluating whether .Net Core is a good fit for mixed Windows/Linux environment, which requires small microservices like this (not this simple). And you basically answered it. Thank you! Awesome stuff.
Awesome!
Very useful, Very to the point, Well explained, Solid... Thanks Tim
You are welcome.
Thank you Tim 🎉
You are welcome.
Thank you Tim, it was awesome!
You are welcome.
good job and good luck bro!!!
This was excellent content. Succinct and informative. Thank you tim!
Thanks for sharing
Very nicely explained. Thanks.
You are welcome.
Excellent video ! You should have a "buy me a coffee" button.. I would have gladly bought you a couple ! Great Work again !!!
You could go to www.patreon.com/IAmTimCorey and buy me one there
I really wish you all the best! Your videos have been very helpful! Thank you for sharing your knowledge!
You're very welcome!
Great video & simply explained! Thanks!
You're welcome!
Very good explanation!
Thanks!
another clear and help full tutorial
Glad it helped
Hi Tim, that was excellent thanks for the lesson. I am monitoring all websites on the web now.
Glad it was helpful!
Very useful video, Thank u Tim 💯😊
Is worker service useful for scheduling a task on daily basis?
Thanks. And yes, they can be useful for scheduling daily tasks.
@@IAmTimCorey Wow! so quick response.. I really not expected this fast. Hats off to you Tim, our devs community must be loving you a lot. Love from India too 😘
Thanks a lot Tim. Really enjoyed learning this new concept for me. :)
This is fabulous. Thank you Tim
You are welcome.
Excellent video dude, thanks so much...!!! - Greetings from Caracas / Venezuela
You are welcome.
Great job Tim. Thanks a lot, great presentation.
Thank you!
Great video!
Thank you Tim.
You are welcome.
Hi tim. May I know where'd the video that you made for console application that runs in background process? Really need helo about that. Love your tutorials tim
Adding it to the list.
@@IAmTimCorey thank you
Thanks Tim you helped me a lot with your detailed explanation. Translation by Google.
You are welcome.
Great content as usual I can't skip a single video from your channel !
Do you think it would be a good idea or even possible to create a worker that can update a memory cache in the background when database changes occur ? Is such a concept possible with this ?
It's Really nice man..! And very clear explanation.!
Glad you liked it!
Thanks very much Tim for your great work.
You are the best
Thank you!
Great content! You've gained a new follower
Excellent!
Thanks for all your videos and efforts on teaching C# with a great detail. Could you please also make a video about good books to read for C#? I would like to know what books you would recommend worth reading. Thanks in advance.
I will add it to the list. Thanks for the suggestion.
CLR via C# is a good book.
@@dsmyify did you read that book ? Is it like from beginner to advance, covering all topics in depth with good examples ? Because I heard that book when i was searching on google. In addition, i have seen "c# 7.0 in a nutshell: the definitive reference" multiple times. I m not sure cause I want to buy a book that is comprehensive and nearly up to date.
@@fatihduzenli5893 ~ it's an advanced book. It's about the CLR and how C# works under the covers. It's learning the underlying concepts of .NET. It is a good book. Makes you think about memory allocation and using the right types structures or classes, it takes about the difference between instance and type methods, and things like that.
@@fatihduzenli5893 ~ it might be worth seeing if a similar book for Core comes out.
Great tutorial man! Thanks a lot from Panamá!
You are welcome.
Nice video...Thanks for explain very detailed
Most welcome 😊
I would love to see this exact same thing, but updated for .NET 6 with the changes to Program.cs, etc. Either way, this was a great help.
Thanks Tim for one more nice lesson.
You are welcome.
Tim, what can be the best way to ask some questions? If it is possible of course.... here ? Or via email?
0:00 - Intro
1:15 - Creating Demo Worker Service App
2:54 - What is a Worker Service
3:59 - Service App template code overview
9:32 - Service App code design using http client
20:15 - Showing log messages: Serilog NuGet references
22:22 - Showing log messages: Serilog configuration
25:00 - Showing log messages: Implementing Serilog
29:45 - Configuring Worker Service for Windows: WindowsServices NuGet
31:32 - Deploying the Service App
33:39 - Installing the Service using PowerShell
37:26 - Uninstalling the Service using PowerShell
39:24 - Updating, deploying, installing and uninstalling the Service
44:04 - Summary and concluding remarks
Thanks again!
Instead of using this method of installing a service one can also use nssm. It supports better failure and recovery scenario's as well as logging console output. This way you can easily create a worker that is suitable as a pod in Kubernetes as well as a Windows service without needing serilog. Another thing: When you return from ExecuteAsync for whatever reason the service will not stop. If you want to stop the service from within the ExecuteAsync when an error occurs or something like that: Call StopApplication on IApplicationLifetime. Just add IApplicationLifetime as a parameter to the constructor of your worker and use that.
Thanks for the suggestion.
Windows services has the benifits of not needing extra software installed and has basic recovery.
Also, having a service stop itself sounds like an anti-service? I would either have a service continue running in idle mode untill needed again or set up a scheduled task.
I want to warn people that if they use this 'BackgroundService' and the service enters a critical state - disk full, other network services not available, data corruption, disk read error, etc... - that IF you wanted to stop the service that you have to do more than return from ExecuteAsync. Without calling StopApplication your service will remain idle forever, but it keeps the service running - probably to cover the scenario of running multiple 'BackgroundServices'.
Why would you want a service to stop itself in such a case? To take advantage of monitoring, alerting, fail-over mechanisme provided by Windows or Kubernetes, etc...
Surely you don't have to use nssm. I used it to make .NET Core Worker work on Windows because we are working towards more and more deployments on a Kubernetes cluster, but not everything can run on it right now and for these new parts in legacy systems this could provide a solution. This prevents me overcomplicating the application with legacy features like logging to a file.
Thanks for this detailed video. Really helpful.
You are welcome.
A little bit slow pace for my liking but you are covering a lot of ground here nice work Tim! This way is a lot nicer than the current 2.* way.
Thank you!
Nice video! thx from Brazil.
Thanks for watching!
Hi Tim,
I'm a hugh fan of your videos. Microservices are very popular nowadays.
Could you make a video about dapr? I use it for a while and it would be very helpful for your followes too.
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
thank you for making this video
You are welcome.
Excellent your tutorial. I think that is better than hangfire.
You can actually use hangfire inside of a service. Hangfire is more about scheduling where services are about running something continually in the background.
Thanks for your video. It's so in depth. Are you able to do a video on automating the deployment of a windows service? Eg Deploying from some generic CI/CD pipeline on some server and deploying the service to another server that may or may not have the service already running?
I added it to Tim's list for topics to consider. Thanks for recommending it.
Love it. Thanks!
You are welcome.
5:00 To be clear, there is no GUI... At least not directly. It may host a web server, for instance, but that's about it. It should, I think, generate some logging, maybe output to the Windows Event Viewer, which most service oriented admins ought to be familiar with for a long while now.
Correct. I do cover the logging a bit in this video, I believe.
Thank you. Awesome tutorial.
I wonder how to create a unit test for a worker service. Do you have any references for that?
Thanks in advance
Topic suggestion noted and have added to Tim's list of viewer requests, thanks.
@@tomthelestaff-iamtimcorey7597 i am heavily interested. did you do that already?
@@maxron6514 Not yet. I would love for you to post this video recommendation on Tim's Suggestion App - suggestions.iamtimcorey.com/. Tim just implemented a new feature so that you will get an email if/when Tim completes the recommendation.
Thanks Tim. It's really simple and usefull staff to start. It would be nice if you record new video with more cool things and deploy it to Azure.
I will add it to the list. Thanks for the suggestion.
Very useful. Please keep up the good work. Only thing I noticed that you could use string interpolation to make code more readable. instead of saying
Log.info("Web Site Status: {statusCode}", statusCode);
could do :
Log.info($"Website Status: {statusCode} ");
notice the '$'
Actually, there is a difference. I pointed it out briefly. If you do it my way, a structured logger like Serilog can pull out that data and store it separately so that you can query on it later in the logs (where statusCode = 401 or temperature > 50 would be examples). If you use string interpolation, you only get a string stored in your log statement so you would need to do a regex match to try to pull out the values.
I haven't made a service in .NET Core yet. But have a Template application that for .NET 2.5 or above. It uses the regular "Windows Services" project type. It can run in debug and display stuff on the console. But once installed as a service it will just run as normal. Also I can just run the exe and put "MyService --install" to put it in services... or "MyService --uninstall" to delete if from services... No third party software involved. I even ported it over to VB for a project I was working on for a company that was all VB.
Cool. Now you can just use the template and do the same things (and have a broader install base with Mac, Linux, and the web).
Fantastic video. thanks a lot.
You are welcome.
Thanks for your Video - like the others awesome!
Thanks for sharing!
tip: skip to 3:00, this is the context you need to know what you are looking at, then go back and watch how he creates it if you don't already know where it is in the new project menu
I'm glad you find it valuable enough to come back to.
That was good and valuable.
Great!
Looks like a great video for beginners.
Thanks!
Hi Tim great video you mention the possibility to trigger the service based on an event in a database could you elaborate on that. Is that done on the DB side using events or sound really interesting.
Love you r videos i get so much inspiration from this keep it up!
A worker service can monitor the database for changes by just calling a small query on a schedule. If something has changed, it can get the new data and do something. For example, if you had a People table, you could do a "select max(id) from People", which would return the last identifier issued. Let's say the first time it is called, you get back id number 10. If you run it again and you get back id number 12, you know that you have at least one new record. You can run "select * from People where id > 10" to get the new records.
Wow these services are easy, I wish I didn't make like the exact same thing as your sample project with a standalone Azure Timer Function.
Yep, they are really easy.
Logging (Windows Event Log) is working only on my windows 10 PC, did not work on Windows Server 2016. Any Idea?
What excites me is that we deal with independant operating system code, but needs to install windows dependant package for windows, haha
Great video! Completely understood.
The outstanding question I've got, though, is how or where do I pass a Cancellation token to end my service operation?
Thank you so much dude. You helped me alot.
Glad I could help!
Excellent lecture deserve respect... Like
Thank you!
Very good .
Thanks 🙏
You are welcome.
Thanks for the video
You are welcome.
Thank you for valuable lesson. Could you please tell how to containerize this worker service. ?
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/