/// <summary>
        /// Starts the ASP.Net runtime hosting by creating a new appdomain and loading the runtime into it.
        /// </summary>
        /// <returns>true or false</returns>
        public bool Start()
        {
            if (this.Proxy == null)
            {
                // *** Make sure ASP.Net registry keys exist
                // *** if IIS was never registered, required aspnet_isapi.dll
                // *** cannot be found otherwise
                this.GetInstallPathAndConfigureAspNetIfNeeded();

                if (this.VirtualPath.Length == 0 || this.PhysicalDirectory.Length == 0)
                {
                    this.ErrorMessage = "Virtual or Physical Path not set.";
                    this.Error = true;
                    return false;
                }

                // *** Force any assemblies assemblies to be copied
                this.MakeShadowCopies(this.ShadowCopyAssemblies);

                try
                {
                    this.Proxy = wwAspRuntimeProxy.Start(this.PhysicalDirectory, this.VirtualPath,
                        this.ApplicationBase, this.ConfigFile);

                    this.Proxy.PhysicalDirectory = this.PhysicalDirectory;
                    this.Proxy.VirtualPath = this.VirtualPath;

                }
                catch (Exception ex)
                {
                    this.ErrorMessage = ex.Message;
                    this.Error = true;
                    this.Proxy = null;
                    return false;
                }
                this.Cookies.Clear();
            }

            return true;
        }
 /// <summary>
 /// Stops the ASP.Net runtime unloading the AppDomain
 /// </summary>
 /// <returns></returns>
 public bool Stop()
 {
     if (this.Proxy != null)
     {
         try
         {
             wwAspRuntimeProxy.Stop(this.Proxy);
             this.Proxy = null;
         }
         catch (Exception ex)
         {
             this.ErrorMessage = ex.Message;
             this.Error = true;
             return false;
         }
         return true;
     }
     return false;
 }
        /// <summary>
        /// Unloads the runtime host by unloading the AppDomain. Use this to free memory if you are compiling lots of pages or recycle the host.
        /// </summary>
        /// <param name="Host">The host.</param>
        public static void Stop(wwAspRuntimeProxy Host)
        {
            if (Host != null)
            {
                Host.Context.Clear();
                Host.Context = null;

                Host.UnloadRuntime();

                AppDomain.Unload(Host.AppDomain);
                Host = null;
            }
        }