I found that approot and sitesroot are used for:
\Approot – The customer’s code, aspx pages, DLLs, etc.
\Sitesroot\ – This is the folder where the full IIS site is run
from. When the role is deployed, the files from \Approot are copied
to this \Sitesroot folder and then IIS will be configured to run the
site from \Sitesroot. Any temporary test changes to the role
(web.config changes, new DLLs, etc) should be placed here.
I wonder why there are two sparate folders as they contain the same files?
AppRootis used at role startup and shoud contain one derived class fromRoleEntryPoint. This content is from web role configured site and is used byWaIISHostworker process.SiteRootcontains web sites from nodeSitesin the.csdeffile and are configured in IIS.