locked
doAppInitAfterRestart and initializationPage not working on IIS 8.5 RRS feed

  • Question

  • User-1264529817 posted

    I'm use asp.net mvc6 on IIS 8.5, set the app pool to Always running. set the website to auto preload = true already.

    but only when the IIS recycle , it will fired the Application_Start() on global.asax.

    but when I start, restart website or modify web.config. it not fired Application_Start() on global.asax. 

    even I set the initializationPage and doAppInitAfterRestart=true.  it newer send fake request when start, restart, or modify web.config.

    <applicationInitialization doAppInitAfterRestart="true">
    <add initializationPage="/a=initial_auto" />
    </applicationInitialization>

    I really don't understand. Why we should wait the user send first request?  You guys all know, the IIS first request will take very very long time.  Why we just don't let it auto send a request , then user access more fast after that.

    I just want to it firing the Application_Start() on global.asax.  because I can add some fake request myself. I even don't need IIS send fake request.   I just want to website no matter start , restart, or modify web.config. or rebuild, recycle . it always can firing Application_Start().

    Why the Microsoft don't do that? wake up Microsoft.

    Sunday, November 23, 2014 11:17 AM

All replies

  • User212506688 posted

    Hi,

    I wrote a few blogs about this configuration here:  http://blogs.msdn.com/b/benjaminperkins/archive/tags/application+initialization/ make sure you have done everything in them.

    Also, AI will send a request only to http://localhost:80 and to no other location.  YOu can configure to call a page deeper into the site, I.e. a sub directory for example, but it will not call other ports or hostnames.

    HTH, Benjamin

    Wednesday, November 26, 2014 9:22 AM
  • User-1264529817 posted

    Hi Benjamin, thank you for replay.

    1. I already set Default pool (.net4 Integrated mode) ) to always running. recycle time only when morning 6:00 execute (other recycle all set to 0, which mean, it will only execute morning 6:00).

    then I set my website(X1) to enableproload = true.

    Then I can see the log, it really will execute every morning 6:00.  I can see because I add some code on Application_Start() on global.asax.  when the recycle finish, the Application_Start() fired, I use my code send a fake request. because I don't need use it send, it limit so much, so many. it only can sue localhost....(use said)

    but when I add my another website(X2). the all setting it just same, but it always can't fired Application_Start() at 6:00. (but another website x2 can). some times it fired it on 23:00.  9:00.....I don't understand why, also I already try the suck feature: initializationPage. it newer send the request. (my host name is my server local IP. )

    the 2 website never firing the Application_Start() when the website stop and start, restart, or release, change web.config.

    So I really think we just need some feature, when every time recycle, or stop and start website, release , change web.config it will can firing the Application_Start().   then we can warm all. that's all.  but I don't understand Microsoft developer thinking what, why just give us this feature, so simple.

    Thursday, November 27, 2014 1:38 AM
  • User-1264529817 posted

    Is that so hard let the Application_Start() firing when : start, restart, release website or modify web.config, recycle IIS?

    I really don't understand the IIS developers......

    We sick of the warm problem already has been 10 years. that's why Microsoft never doing like apple good. just a simple problem but not handle....


    We even don't need application initial feature or let IIS send fake request. We only just need it firing application_start(). then we can warm up it, also we can made a request if we need.(the initial feature limit so many, I think we own fake request more better than that)

    Tuesday, December 2, 2014 11:43 AM