ممنون از توجه شما
با توجه به راهنمایی شما به صورت زیر عمل نمودم و درست هم جواب میدهد:
public static void RegisterRoutes(RouteCollection routes)
{
using (routes.GetWriteLock())
{
var pages = Task.Run(async () => { return await _pageService.FindAllAsync(); }).Result;
routes.Clear();
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
pages.ToList().ForEach(page => routes.IgnoreRoute(url: page.Url));
routes.MapRoute(name: "Default",
url: "{controller}/{action}/{id}",
defaults: new
{
controller = MVC.Home.Name,
action = MVC.Home.ActionNames.Index,
id = UrlParameter.Optional
},
namespaces: new[] { $"{typeof(RouteConfig).Namespace}.Controllers" });
var defaultRoute = routes.Last();
routes.Remove(defaultRoute);
// routes.MapRoute(yadayada);
routes.Add(defaultRoute);
}
}
ولی مشکلی که وجود داره این هست که ممکنه url هایی که از دیتابیس بازیابی شده اند بعد از مدتی از حالت Ignore خارج کنیم، به نظر شما چه راه حلی وجود داره که بعد از بالا آمدن برنامه، بتوانیم Route Collection را بروزرسانی نماییم؟