Website load slow on first run in IIS7 integrated pipiline mode - iis-7

I have a pure html website, there is nothing to render.
On first run it takes about 10 seconds to load.
In the second time and above in a scope of 10-15 minutes it takes less then a second to load, Even if I open another browser.
I can see that a browser waiting for a response from the server, the server is IIS7 in integrated pipiline mode, if I set it to classic mode the issue is disappeared even if I will access again the website after 10 hours.
I'm pretty sure it's not about the application idle timeout because in integrated pipiline it's set to 1 hour.
Please advice.
Thanks

Easiest solution would probably be to add the Application Initialization plugin to your site. This blogpost should be of help. Basically it just pings your website occasionally so it gets the long load time, rather than a user.

Related

Can't clear ASP.NET cache

We have a 2.x ASP.NET application, running on Windows Server 2k8R2.
We had to make a couple of changes and when we posted them to production the new changes are not working. When I check the physical page on the production server all of the new code is there, however the old code is still executing.
Something seems cached and I don't know where to check to un-cache it? I quickly restarted IIS but I can't bring server down for a long period of time until later tonight. I would like to figure out why this is happening so I can reset it now and also avoid it in the future. Any idea?
It's the same as refreshing the application pool. Do that instead, it's much faster!
I don't know what is causing the problem but I did find a fix. When I touch the web.config it recycles everything. So I edited by web.config, just added some black space and saved it. Once I did this my page refreshed properly. This allowed me to keep running the server. If I edit web.config multiple times it will lock up and I'll have to restart IIS (learned this the hard way a while back) but for a one time update so I can keep running until I can recycle later at night, it worked great.

Weird webpage loading behaviour

I have a website that I'm hosting on a public IP using IIS 7.0. (using c# asp.net 3.5)
I find that if I navigate to the webpage for the first time in a day. It loads endlessly and nothing shows up. Then when I re-press enter in the address bar, it loads right away and everything works fine.
From then on, when I got to the address again it loads quickly.
I don't think this is a compilation issue as all my code is pre-compiled.
Any ideas what might be causing this behavior?
Thanks!
Andrew
I had a similar problem which turned out to be caused by the IIS app pool recycling.
In my case, the website had outgrown its hosting package and as soon as it hit the arbitrary memory limit, the app pool was recycled and the application restarted, recompiling on the first page view.
You can check for this by adding a Global.asax and handling the Application_Start event. You could write logs to a database or send an email notification with whatever debug details you want.
I also handle Application_Error which offered up some useful info.
If you notice Application_Start happening several times a day, you may have a memory leak or similar issue.

What are possible causes for App_Offline.htm not bringing the site down?

Normally, I use App_Offline.htm for taking the site offline. But occasionally, when I do that, the site just hangs (like in: browsers wait forever, server gives no response at all). This seems to happen on an updateable site when I change something, like a control and afterward, when it doesn't go quick enough (site hangs), I place App_Offline.htm in the root of the website.
In most cases, this immediately takes down my site. But occasionally it doesn't. In those cases, I cannot just stop the website (when I restart, the behavior continues). Stopping the application pool doesn't let me restart the same app pool. The only two solution so far is restarting the whole IIS web service.
I'd like to prevent this from happening. Is this a bug in IIS not "breaking all actions" when App_Offline.htm is found? I use IIS 7 with Windows 2008 SP2 64 bit.
What I found was that my web.config file either had an error in it or was missing. When this is the case, app_offline.htm does not get processed.
IIS should not stop existing actions, only prevent new requests from going through: Will app_offline.htm stop current requests or just new requests?
It sounds like you are describing a scenario where you update a control, try to load a page, and IE is stuck loading. At this point you drop the app_offline.htm and expect to see that page immediately.
If you are making a completely separate/new request after putting app_offline.htm in place then you should see the page come up. However the existing request will not be affected as linked above.
If possible try deploying the app_offline.htm file prior to making the control change.
I am not sure what you mean by "Stopping the application pool doesn't let me restart the same app pool"...if you meant that you can't restart the pool immediately after stopping it, thats because it isn't stopped yet. Depending on the number of Worker Processes in that pool it may take a min for it to completely spin down so it can accept the start command.
Also, I would think you would have to restart the pool in order for the app_offline.htm to work effectively anyway.
Here's the thing.
Everytime when you open the .sln at the server, or updating the code, it will create the app_offline ticket in the root.
This is the feature from asp.net itself to prevent any access to disturb your development.
Delete the app_offline manually everytime after you open the .sln.
hope this help.
thanks.
Another possibility is a missing handler. The following handler is required:
ExtensionlessUrlHandler-Integrated-4.0
To fix the issue you need to at a minimum:
Wait the length of your website timeout to ensure all requests have finished.
Background processes kicked off from a web request will mean further extending the length of time you wait beyond the website timeout
Unload any unmanaged code by hooking into the DomainUnload or Application_End events
I'm waiting 3 minutes for App_Offline.htm to take affect and this seems has allowed App_Offline.htm to work as expected.

Why would an ASP.NET site become veeeeeery slow after the network connection dropped?

I have an ASP.NET 3.5 site published in IIS 7.5 on Windows Server 2008 R2 64 bit. The pages are accessed over SSL
One of our testers has determined that if, during a postback, he blocks network access on his PC, and then after a few seconds reconnects, our site becomes excruciatingly slow. Like 30 seconds per page load.
If he hits the refresh button in his browser it stays slow. If he closes the tab, then re-opens it, it becomes fast again.
This behavior happens with both IE 8 and the latest firefox. There are no event log entries on the server when this happens
My question:
- Has anyone seen this same behavior?
- Does anyone have a theory as to what causes it?
Just a shot in the dark, but it might be related to HTTP keepalive. Try disabling that on the server and see if the problem persists.
I noticed same thing. I removed the cache and speed was fine again. Remove cache It may be causing problem.

ASP.Net / Umbraco Website has (initially) very high server response time

I've got this problem.
I launched an ASP.NET website with the Umbraco CMS on an ISP.
(Its just a very basic informative site. nothing special.)
When I go want to visit the website however, the first pageload takes a lot of time, sometimes even up to 20 seconds. Of course this is ridiculous.
Afterwards, I am able to navigate the site relatively quick..
So every first pageload is slow, then everything is OK, more or less.
Does anybody have any idea what the problem could be? Would it be IIS? ASP.NET?
IIS is probably configured to shutdown the application pool after N minutes of inactivity.
AFAIK, this is the default behaviour on IIS.
If it is the first request to be served, IIS at least starts the APP Pool. This might take a bit of a time. Maybe Umbraco loads initially some data, but I did not have any experience with Umbraco, so that's beyond my knowledge.
-sa
What do you meen by first page load?
Have you just done a build? If this is a website then .Net will compile and load the dll. Then IIS will cache page outputs.
Do you have any large images on the page?
Essentially there are an infinate number of reasons. Have you used firebug? Determine where the loadtime is?
Do you have a link?
You may want to look into a keep alive service. There are many available that regularly poll you site to keep the application pool running and prevent the startup delay you are seeing. More information here and here.

Resources