Bu dosya yapısı çizgisinde bir şey ile bir ASP.NET WebForms uygulama var: Ben locahost/subfolder/page.aspx
giderek page.aspx
erişirsenizWeb.config çalışmıyor
root\
default.aspx
web.config
subfolder\
page.aspx
web.config
alt klasördeki web.config dosyasını çok iyi okur.
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "test", "~/subfolder/page.aspx");
}
Ve localhost/test
giderek, bu yolla sayfasına erişmeye çalıştığınızda, sayfa yüklendiğinde sadece iyi ama başarısız:
Ancak, ben şöyle sayfa kurulum için bir rota var alt klasördeki web.config dosyasındaki değerleri okuyun.
Bir şey mi eksik? Bir sub web.config'in rotalarla çalışmasına izin vermek için başka bir adım var mı?
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpRequest request = HttpContext.Current.Request;
Route route = RouteTable.Routes.Where(x => (x as Route)?.Url == request.Url.AbsolutePath.TrimStart('/')).FirstOrDefault() as Route;
if (route != null)
{
if (route.RouteHandler.GetType() == typeof(PageRouteHandler))
{
HttpContext.Current.RewritePath(((PageRouteHandler)route.RouteHandler).VirtualPath, request.PathInfo, request.Url.Query, false);
}
}
}
yaparak: Ben Global.asax için aşağıdaki ekleyerek sorunumu çözmek mümkün oldum
var test = WebConfigurationManager.AppSettings["testSetting"];