Its lifetime depends on when you initialize the Singleton, but once you did, it'll stay alive (assuming you have an instance of the singleton class in a static member) until the thread corresponding to the application pool is dropped, because of inactivity, the application pool being restarted/stopped/recycled, or anything that causes the application pool to recycle or stop basically.
If you initialize the Singleton in the Application_Start event of the Global.asax you can be sure your Singleton will be available at any time in your application.