ASP.NET website performance - asp.net

Does any one know if number of ascx files in an ASP.NET website (not application) has anything to do with warm up performance?
Let's say that all website pages are included into ascx files and are loaded into one page and let's say that there are more than 200 ascx files in the project.
I noticed that when the IIS restarts and the website wants to warm up, there is a good 30 seconds delay, I want to find out what are reasons for this delay.
I have checked the database calls (they are no more than 7 seconds in total).
I need to add that once the first page is loaded, reloading the same page has no delay (instantly loads).

Related

ASP .NET Website; first load of every page is very slow

I'm facing with the following situation:
On an ASP .NET website(this is maybe important, it is not a web app. project, it is a website project in VS) the aspx pages load very slow for the first time; and the key is, that EVERY page is loading very slowly for the first time, not only the very first page after an app pool restart;
Of course I know that the app. pool is stopped after a certain amount of idle time, and after restarting the very first page load can be slow; but I think this is not the case in this site, since every page's first load is slow after deploying the website to IIS.
It seems that every page is compiled at the time when it is first loaded, don't know, if it's possible at all.
Any ideas, what can cause this, and how to avoid?

An idea about deleting junk files (like attachments) regularly

I've created an ASP.NET web form site.
The site allows the user to write articles, and upload attachments as well.
While the user is writing the article, any uploaded attachments are moved into a temp folder that I created in my site folders, and just when the user submits the article, the attachments are moved to an appropriate path,
But what if the user closed the form, discarding the article? are files in the temp folder will be permanent? of course not!
SO
I want to determine a good scenario for deleting the temp files regularly, without deleting any files that are in pending.
I'm thinking about a scenario:
Deleting any files that are created for more than an hour! (using file system functions) and that occures in the Application_Start event or Session_end
Any better ideas?
I would do it as a stand-alone Windows Service.
If you add that logic to an Application_Start event, if your site is constantly visited (and never recycled by IIS), you'll only run that process once. You'll also have the potential to dramatically slow the initial precompile of the site for the first visitor.
Session_end could be good, but if two people have it end at the same time, you could run into a race condition.
A Windows Service gives you the benefit of always running (and not using CPU when waiting, if written correctly), and it doesn't interfere with the working of your ASP.NET site.

ASP.NET keep alive page using aspx vs. html

I have having trouble with my hosted site taking a long time to render the first page when it has not been accessed for a while. I wanted to create a keep alive page that I would call every 15 minutes to make sure the site stays up and running. Can I create an html page or must I create an aspx page for this to work? Will the thread pool recognize the html page that is not part of my ASP.NET project and make sure the site is not shut down?
You're going to have to create a page which hit's the .net process. You can do an html page, but you're going to have to have something on that page that hit's the asp.net process.

How ASP.NET Web Pages Threading / Multi Tasking Works for Single user?

This Might be a very basic Questing. (URGENT)
I have a Web application with multiple pages.
When a user is Logged in using Visual Studio(Development) / IIS (Production )
If the user have opened a Page 1 from home page which is long running process (Lets say few minutes)
Can the same user open Page 2 from home page while Page 1 is still running.
There is no connection between Page1 and Page 2.
Remember I am talking about the same user in the same machine.
Does ASP.NET takes care of this MultiThreading by default for above situation?
Or I Should create Separate Thread for each page?
I my case I not able to open the second page still the first page is Finished.
Please shed me some light.
Regards
The answer is yes, if a user is opening Page 1 (which may take a long time to render), other users, or even the same user, can still open other pages in the application at the same time* (including Page 1 again).
(*) Unless database locking or some other explicit mechanism prevents this, however you have to try fairly hard to get this to happen

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