HTTP Handler for Classic ASP not working SiteFinity 6.2
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"/>
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
Hello Hersh,
This issue is discussed here:
http://www.sitefinity.com/developer-network/forums/general-discussions-/httphandler-not-working#1501414
You can try set it up as is described there.
Regards,
Vassil Vassilev
Telerik
Hello Vassil,
We looked the exact same blog you are pointing to to write this code. However, the handler never gets called. We have simplified the code for you. Can you please run this and see if it works for you.
Thanks
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;
context.Response.Redirect("/home");
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"/>
Hello Hersh,
I have tested it and it works as expected. Make sure you have registered the handler in the proper section of your webconfig: configuration > system.webServer > handlers
Regards,
Vassil Vassilev
Telerik
We did add the handler in web.config. It has always worked locally but does not work when deployed to the web server on Windows 2012 IIS 8.5
Thanks
Hersh
Are you 1000% sure it's not in <httpHandlers> ...because that will defiantly not work on Server 2012 IIS 8.5
Hello,
Yes, I have tested it as described and recorded a video for your convenience (video). If this works on specific environments, than the issue is related with the environment setup and is not directly related with Sitefinity.
Regards,
Vassil Vassilev
Telerik
Just a quick follow up:
If you feel unsure where to add your HTTP handler, you could use IIS built-in tool (screenshot) to add it for you in your webconfig file.
I hope this helps.
Regards,
Vassil Vassilev
Telerik
Thank you all. Registering the handler in the "handler" section fixed the issue.