Uncategorized

Advanced ASP.NET 2.0 and deep dive Ajax training

Last week I attended an advanced ASP.NET 2.0 training with deep Ajax dive in our sub in Munich; for my convenience I flew in on Monday morning (I had to wake up at 4 a.m. to go to the airport 🤭), jumped on a S-Bahn train to the station of Lohhof and after that I had almost no idea where to go exactly because that was my first time there, but right out the station there is a nice road sign indicating “Microsoft –>”  😊, and then signed-in right on time for the first day start.

It was a Develop Mentor training set up just for us CSS Engineers (well, actually the only 5 attendants are all from my virtual team 😲); the weather in Germany has been quite bad, lots of rain and icy wind (I actually got a cold with a temperature, a cough… all the stuff 🤒), all the hotels in town where full because of some kind of industrialists meeting (not exactly understood what) so I had to accept the only with some rooms available… not a good experience for my first time in Germany, but at least the training was well worth all of those troubles!

The trainer (Dan Amiga) left me a very positive impression, we also had some discussions on the inside of the technology which is what we as Support Engineers most need to do our job, and this also raised some discussions on topic I thought were clear for everyone, but maybe it worth spending a few words on them…

Shared AppDomain… shared what??

Speaking about AppDomains, we have one of them for every application running inside the worker process (plus of course any additional AppDomain you create, or created by other components you are using), there are three more special domains: the System Domain, the Default Domain and the Shared Domain (which is where assemblies from the GAC are loaded). So even if you run a simple ASP.NET application on your web server, you’ll have at least 4 AppDomans: further details here and here.

maxWorkerThreads default value

The default value for this property is “20”. Remember that if you are running on Windows 2003, most of the values from the <processModel> section will be ignored but the following:

  • autoConfig
  • maxIoThreads
  • maxWorkerThreads
  • minIoThreads
  • minWorkerThreads
  • requestQueueLimit
  • responseDeadlockInterval
What can unload my AppDomain?

One of the following:

  • Machine.Config, Web.Config or Global.asax are modified
  • The bin directory or its contents is modified
  • The number of re-compilations (aspx, ascx or asax) exceeds the limit specified by the <compilation numRecompilesBeforeAppRestart=/> setting in machine.config or web.config (by default this is set to 15)
  • The physical path of the virtual directory is modified
  • The CAS policy is modified
  • The web service is restarted
  • (2.0 only) Application Sub-Directories are deleted (see Todd’s blog http://blogs.msdn.com/toddca/archive/2006/07/17/668412.aspx for more info)

So in 2.0 if we precompile our site using “Use Fixed naming and single page assemblies” setting, we can update just one “page” (one dll) instead of redeploying the entire application, but this will trigger an AppDomain restart anyway.

Cheers

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.