This is a migrated thread and some comments may be shown as answers.

HTTP Handler for Classic ASP not working SiteFinity 6.2

1 Answer 42 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Hersh
Top achievements
Rank 1
Hersh asked on 06 Mar 2014, 10:13 PM
Please find our code for HTTP handler to handle classic asp request. However it request never gets processed.

 

    public class AspRouteHandler : Telerik.Sitefinity.Web.PageRouteHandler
    {
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return new LegacyUrlHandler();
        }
    }

    public class LegacyUrlHandler : IHttpHandler
    {
        private const string LegacyUrl = "index.asp";
        private const string ReferringUrl = "ReferringUrl";
        private const string RedirectUrl = "RedirectUrl";

        public void ProcessRequest(HttpContext context)
        {
            if (!context.Request.RawUrl.ToLower().Contains(LegacyUrl))
            {
                return;
            }

            IQueryable<DynamicContent> entries =
                Extensions.RetrieveCollectionOfModuleData(DynamicModulesPath.DynamicProvider(),
                    DynamicModulesPath.Custom404());

            DynamicContent firstRow =
                entries.FirstOrDefault(x => x.GetValue<string>(ReferringUrl) == context.Request.RawUrl);

            if (firstRow == null)
            {
                return;
            }

            context.Response.Redirect(firstRow.GetValue(RedirectUrl).ToString());
        }

        public bool IsReusable
        {
            get { return true; }
        }
    }

-----------------------

Global.ascx changes

  protected void Application_Start(object sender, EventArgs e)
        {
            Telerik.Sitefinity.Abstractions.Bootstrapper.Initialized += new EventHandler<Telerik.Sitefinity.Data.ExecutedEventArgs>(Bootstrapper_Initialized);
        }

void Bootstrapper_Initialized(object sender, Telerik.Sitefinity.Data.ExecutedEventArgs args)
        {
            if (args.CommandName == "RegisterRoutes")
            {
                var routes = ((EnumerableQuery<System.Web.Routing.RouteBase>)args.Data).ToList<System.Web.Routing.RouteBase>();
                System.Web.Routing.Route newRoute = new System.Web.Routing.Route("index.asp", new AspRouteHandler());
                routes.Insert(0, newRoute);
            }
        }

----- web.config

<add verb="GET" path="*.asp" type="Qualico.Website.LegacyUrlHandler, Qualico.Website"/>

1 Answer, 1 is accepted

Sort by
0
Hersh
Top achievements
Rank 1
answered on 06 Mar 2014, 10:13 PM
The code handler never get's executed on the Sitefinity Web Server with IIS 8.5 however works locally due to the ASP http handler in the web.config file
Tags
General Discussions
Asked by
Hersh
Top achievements
Rank 1
Answers by
Hersh
Top achievements
Rank 1
Share this question
or