Home > Net >  IIS Performance - First load of aspx pages
IIS Performance - First load of aspx pages

Time:11-02

I have several projects in asp.net and in all of them I have the same problem. The first time I access an aspx page the load is very slow. Once I close the page and reopen it, the load is very fast. Why is the first load so slow? Can I change any settings in IIS?

Thanks

I have read a lot of documentation but I am not an expert in this and I have not gotten any progress.

CodePudding user response:

Ok, so several issues here.

You don't mention if you are talking about your developer computer - say hitting f5 to run the site.

next up, are you deploying a asp.net web site, or a asp.net web site application?

With a application then the compile of the code and pages occurs on YOUR computer, and the .dll's are built by Visual studio (VS). So, at deploy time, then there is a first-time delay, but it not all that long - maybe 5 seconds, and that's as app pool etc. spools up.

However, if you deploy a asp.net web site? Then unlike an "application", the source code (vb, or c#) pages for code behind are included, and deployed to the web site. And this means that IIS does the compile of pages - and often on the fly. This deployment model is often preferred by many, since you can open even the live files on the server, edit one line of code behind, hit save. On next page use, it will re-compile.

If you use an application, then as noted, IIS does not do the code compile, and in fact not even the source code is deployed during a publish. Of course, while there are many benefits to an "application", the ONE big downside is of course that you require a full site re-publish EVEN if you change just one line of code behind.

So, while an application has "some" delay for the first site use, it tends to be considerably less of a delay compared to when using/deploying a web site. (Since then, IIS has to compile the code, and in fact has to compile each page used).

You don't mention/note which deploy model and approach you are using here.

As noted, while the web site option is certainly less efforts to make a change to one page or a bit of code, I still far prefer the "application" approach, since things like "referencing" additional class library and code, and even being able to say use the Rosyln compiler (which may well not be on the server and available to IIS). As a result, I prefer and use an "application" despite the extra efforts required come publish time, but the benefits at developer time far outweigh the downsides.

And of course, one benefit of the "application" approach, is you do as a general rule get far faster web start up times.

CodePudding user response:

By default, asp.net web pages and code files are compiled dynamically when users first request aspx page from a Web site. After pages and code files have been compiled the first time, the compiled resources are cached, so that subsequent requests to the same page are extremely efficient.

More information about asp.net dynamic compilation:

Understanding ASP.NET Dynamic Compilation.

How to: Precompile ASP.NET Web Sites for Deployment.

  • Related