The best solution I have found so far is to use some websites that visit your website repeatedly. By using this trick you can call a method to check whether the intended process/thread is running or requires to be restarted. You may also use an ASP.NET Web Service as the process but the same applies to the service. Other solution is when you own the server on which your website is running. If so, you may run a process outside the region of IIS and managed directly by OS so it can be running forever