public void ProcessRequest(HttpContext context)
        {
            DirectoryInfo webFolder;

            try
            {
                webFolder = new DirectoryInfo(context.Request.PhysicalApplicationPath).Parent;
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("Exception while tracking 'Web' folder -{0}", ex.Message));
            }

            if (context.Request.QueryString["product"] == null && context.Request.QueryString["product"] == null)
            {
                throw new Exception("Requirred Query string [product] to handle the request.");
            }

            string path        = string.Format("{0}\\{1}", webFolder.FullName, context.Request.QueryString["product"]);
            string productname = context.Request.QueryString["product"].ToString().ToLower();

            if (!Directory.Exists(path))
            {
                context.Response.Write(string.Format("http://js.syncfusion.com/demos/", productname));
            }
            else
            {
                DirectoryInfo productFolder = new DirectoryInfo(path);

                string port         = null;
                string physicalPath = string.Format("{0}", productFolder.FullName);
                string prefixURL    = string.Empty;//.Format("mvcsamplebrowser/{0}", productFolder.Name);

                try
                {
                    string frameWorks = System.Configuration.ConfigurationManager.AppSettings["FrameWork"];
                    if (frameWorks == "4.5")
                    {
                        CassiniWebServer.StartVersion45xWebServer(physicalPath, prefixURL, out port);
                    }
                    else if (frameWorks == "4.0")
                    {
                        CassiniWebServer.StartVersion4xWebServer(physicalPath, prefixURL, out port);
                    }
                    else
                    {
                        CassiniWebServer.StartVersion3xWebServer(physicalPath, prefixURL, out port);
                    }

                    context.Response.Write(string.Format("http://localhost:{0}", port));
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Error: Unable to start Webserver.web.exe, Message:{0}", ex.Message));
                }
            }
        }
        public void ProcessRequest(HttpContext context)
        {
            DirectoryInfo webFolder, installedFolder;

            try
            {
                webFolder = new DirectoryInfo(context.Request.PhysicalApplicationPath).Parent.Parent;
                while (webFolder.Name.ToLower() != "web")
                {
                    webFolder = webFolder.Parent;
                }
                installedFolder = webFolder.Parent;
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("Exception while tracking 'Web' folder -{0}", ex.Message));
            }
            string productPath;

            if (context.Request.QueryString["product"] == null && context.Request.QueryString["product"] == null)
            {
                throw new Exception("Requirred Query string [product] to handle the request.");
            }
            if (context.Request.QueryString["path"] == null && context.Request.QueryString["path"] == null)
            {
                productPath = @"JavaScript\\ionic samples\\desktop\\www";
            }
            else
            {
                productPath = context.Request.QueryString["path"];
            }
            string path        = Path.Combine(installedFolder.FullName, productPath);
            string productname = context.Request.QueryString["product"].ToString().ToLower();

            if (!Directory.Exists(path))
            {
                context.Response.Write(string.Format("//asp.syncfusion.com/demos/{0}", productname));
            }
            else
            {
                DirectoryInfo productFolder = new DirectoryInfo(path);

                string port         = null;
                string physicalPath = string.Format("{0}", productFolder.FullName);
                string prefixURL    = string.Empty;

                try
                {
                    string frameWorks = System.Configuration.ConfigurationManager.AppSettings["FrameWork"];
                    if (frameWorks == "4.5" || frameWorks == "4.5.1" || frameWorks == "4.0" || frameWorks == "4.6")
                    {
                        CassiniWebServer.StartVersion45xWebServer(physicalPath, prefixURL, out port);
                    }
                    else
                    {
                        CassiniWebServer.StartVersion3xWebServer(physicalPath, prefixURL, out port);
                    }

                    context.Response.Write(string.Format("http://localhost:{0}", port));
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Error: Unable to start Webserver.web.exe, Message:{0}", ex.Message));
                }
            }
        }