.Net Tips – Find out if your app is running as a service

When you are developing an application to run as a service it’s nice to be able to also run it as a console app so you can easily debug, etc. On the rare occasion you might even want to find out if your app is running in a console window at runtime so you can set the title of the console window to display some useful debugging information, for example.

After some quick digging around, I found a relevant question on StackOverflow and the answer here, all you need is a simple method like this:

   1: public bool IsService()

   2: {

   3:     var entryAssembly = Assembly.GetEntryAssembly();

   4:     var entryPoint = entryAssembly.EntryPoint;

   5:

   6:     // add a little error handling to make sure there is a BaseType

   7:     return

   8:         entryPoint.ReflectedType.BaseType != null &&

   9:         entryPoint.ReflectedType.BaseType.FullName == "System.ServiceProcess.ServiceBase";

  10: }


Yan Cui

I’m an AWS Serverless Hero and the author of Production-Ready Serverless. I have run production workload at scale in AWS for nearly 10 years and I have been an architect or principal engineer with a variety of industries ranging from banking, e-commerce, sports streaming to mobile gaming. I currently work as an independent consultant focused on AWS and serverless.

You can contact me via Email, Twitter and LinkedIn.

Hire me.