И здесь я просто кратко повторю:
Первым делом надо добавить в проект ссылки на сборки System.Web.Routing и System.Web.Abstrations
public class WebFormRouteHandler: IRouteHandler where T : IHttpHandler, new()
{
public string VirtualPath { get; set; }
public WebFormRouteHandler(string virtualPath)
{
this.VirtualPath = virtualPath;
}
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return (VirtualPath != null)
? (IHttpHandler)BuildManager.CreateInstanceFromVirtualPath(VirtualPath, typeof(T))
: new T();
}
}
//Этот клас необходим для работы механизма роутинга в IIS 7
public class RoutingHandler : UrlRoutingHandler
{
protected override void VerifyAndProcessRequest(IHttpHandler httpHandler, HttpContextBase httpContext)
{
}
}
Чтобы роутинг заработал в IIS7 Необходимо выполнить ряд дополнительных действий
- Вставить в web.config, в раздел system.webServer в теге modules следующую строчку:
- В сам тег modules добавить атрибут
- И последнее в том же разделе в тег handlers добавить:
Ну и теперь для счастливой жизни нам не хватает только следующего кода в файле Global.asax
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
// Note: Change the URL to "{controller}.mvc/{action}/{id}" to enable
// automatic support on IIS6 and IIS7 classic mode
var routeHandler = new WebFormRouteHandler("~/MyPage.aspx");
routes.Add(new Route("{page}", routeHandler));
routes.Add(new Route("AccountServices/{page}", routeHandler));
routes.Add(new Route("Default.aspx", routeHandler));
}
Перед тем как использовать рекомендую так-же прочитать
Using routing with WEbforms . Дабы спастись от злых хакеров
Using routing with WEbforms . Дабы спастись от злых хакеров
Комментариев нет :
Отправить комментарий