Tuesday, January 25, 2011

Dissection of a Windows Azure SDK 1.3 based ASP.NET Web Role in Full IIS mode & HWC

Let's start from the point that you have an ASP.NET based WebRole as MainWebRole.DLL which you have created using Windows Azure SDK 1.3. The ServiceConfiguration.CSDEF setting can run your webrole in following two modes:

1. Full IIS Mode
2. HWC (Hostable Web Core) Mode

Full IIS Mode:

Let's Start from Full IIS Mode. In this mode you will have your ServiceConfiguration.CSDEF will have a section name <Sites> as below:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="AzureVMAssistant" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
 <WebRole name="MainWebRole">
   <Sites>
     <Site name="Web">
       <Bindings>
         <Binding name="Endpoint1" endpointName="Endpoint1" />
       </Bindings>
     </Site>
   </Sites>
   <Endpoints>
     <InputEndpoint name="Endpoint1" protocol="http" port="80" />
   </Endpoints>
   <Imports>
     <Import moduleName="Diagnostics" />
     <Import moduleName="RemoteAccess" />
     <Import moduleName="RemoteForwarder" />
   </Imports>
 </WebRole>
</ServiceDefinition>

Above highlighted <Sites> part is important as it makes your application to run in Full IIS mode. When you RDP to your Windows Azure VM you will see two processes are handing your service:

1. WaIISHost.exe
2. s3wp.exe

5086.fulliis01.jpg

Read more:  Avkash Chauhan's Blog