1

If there were no visits to the dotnetnuke portal for some time, depending on the host, the dotnetnuke is unloaded from server's memory. The first visitor that comes next is then forced to wait about 15+ seconds (depending on server's speed) in order to see the page. Dotnetnuke is a big framework but sometimes ends up serving low traffic sites also and that causes this unpleasant situation.

My idea is to show the static index.html page which holds the html code from the default.aspx dotnetnuke page and execute XMLHttpRequest via javascript onLoad to "get" the default.aspx to start loading.

My first page is a long sales letter and I would like the dotnetnuke to load in background while people read the sales letter and hopefully the page will be loaded when they decide to click a link or a menu item that links to some dotnetnuke page. If they click the link before it loads and are the first to visit the site they will still have to wait, but the ones that are there for the very first time (and are reading the letter) are the ones I don't want to loose over waiting for the site to come up.

So every time when I modify the content on default.aspx I would need to create a new index.html page and overwrite the old one. I can do that with the same XMLHttpRequest in just a few lines of code.

So, what do you think?

Since I'm not all that in web development or dotnetnuke I want your opinion and/or your advice how people deal with this.

ps. since my host doesn't let me to install dotnetnuke into a root folder I had an index.html page that redirected to /dnn/Default.aspx This way I can actually have the index.html page with all the content in my root folder and let the search engines take that page instead /dnn/Default.aspx and would not have to preform any automatic redirects.

pps. I am aware of the services that check your site for free every 15 or 30min, but that's not the answer since it messes up my visit statistics.

Ivan
  • 101
  • 3
  • 13
  • 1
    If you have control of IIS on the web server you can configure it so that it doesn't unload the ASP.NET worker process. –  Sep 02 '09 at 13:42
  • 1
    In keeping with the general flavor of dotnetnuke (hack-cough-hack), I would just create a winforms app with a WebBrowser control that showed the home page and refreshed every 19 minutes, and run it on the server. Then I would quit my job and bum around the country on trains, if that's even still possible. – MusiGenesis Sep 02 '09 at 13:45
  • @Will Yea, I know that but I don't have it – Ivan Sep 02 '09 at 13:46
  • @MusiGenesis Yea, I know, but that messes with my visit statistics. I am aware of the services that check your site for free every 15 or 30min, but that's not the answer. – Ivan Sep 02 '09 at 13:48
  • @Ivan: if one extra request every 20 minutes significantly messes up your hit statistics, you have other problems. :) – MusiGenesis Sep 02 '09 at 13:51
  • @Ivan: and I can't believe I'm even still thinking about this, but you could set up a special meaningless page that your WebBrowser control hits (instead of the home page), which would keep your statistics in good order. Now excuse me, I have a train to catch. – MusiGenesis Sep 02 '09 at 13:53
  • @MusiGenesis of course every 20 minute visit significantly messes up my hit statistic because it is a low traffic site with a lot of content that changes very often to sell an expensive product – Ivan Sep 02 '09 at 14:01
  • @MusiGenesis I am afraid that I don't understand your last comment. Good luck with the train. – Ivan Sep 02 '09 at 14:02

2 Answers2

0

Ivan,

There are many cheap "ping" solutions that can keep your site alive by making periodic requests to the web server. I would consider this option first, as it won't require any special coding on your behalf.

Just google dnn keep-alive; http://www.google.com/search?q=best+dotnetnuke+keep+alive+solutions&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

Rafe
  • 8,467
  • 8
  • 47
  • 67
  • sorry, I forgot to mention earlier that these services like http://host-tracker.com really can mess up my visit statistics. – Ivan Sep 02 '09 at 14:04
0

I think you might be overthinking this.

Sign up for a free web site monitoring service (there are tons out there) that will check your site every 10 or 15 minutes. This will keep the application in memory and give you a bonus of having your uptime monitored.

Brandon
  • 13,956
  • 16
  • 72
  • 114
  • sorry, I forgot to mention earlier that these services like http://host-tracker.com really can mess up my visit statistics. – Ivan Sep 02 '09 at 14:05
  • 2
    So create another site in the same application that host tracker uses, and let that one be the one that gets monitored. – Brandon Sep 02 '09 at 14:37
  • Brilliant, yet so simple. Thank you. I guess sometimes you have to use cannon to hit a fly in order to learn.. :) – Ivan Sep 02 '09 at 14:55
  • You can also hit a page called keepalive on your site and just no track any stats on that page if you want - just returns the date time each time its opened – braindice Dec 02 '09 at 17:47