title: What actually causes Session_Start to be called?
body: <p>In a little demo application that I'm building I put code to initialize the database in the Global.Session_Start() event.  However, I notice that this event does not fire when I'm running through the app in the debugger on the development server (haven't tested it anywhere else yet).</p>
  
  <p><strong>Question 1:</strong> What gives?  When does Session_Start() actually get called?  I assume it is when the session starts but shouldn't the beginning of every new sequence of requests cause a session to start automatically?  Certainly a session should start whenever I run with F5 so why doesn't it.</p>
  
  <p><strong>Question 2:</strong> Is there a better place where the code to initialize the database should go?  i would rather not put it in the Application_Start method, since it does not always get called when debugging.</p>
  
  <p>PS.  By initialize database I do not mean I open a connection to SqlServer and leave it open forever.  I am using db4o and I open a pre-built database file.  Like I said this is just a demo application, I'm not worried about poor resource management or anything like that.</p>