در یکی از پروژه های اخیر که با Asp.Net Web forms انجام دادم ، پس از آپلود سایت روی هاست IIS 7 متوجه عدم امکان دسترسی به صفحات پیش فرض موجود در هر شاخه و در بدترین حالت به صفحه پیش فرض ریشه شدم. این حالت زمانی پیش می آمد که دسترسی به صفحات را محدود می کردیم (با استفاده از روش زیر):
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
برای حل این مشکل ، کد زیر را به فایل Global.aspx پروژه اضافه میکنم:
void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.AppRelativeCurrentExecutionFilePath == "~/")
HttpContext.Current.RewritePath("default.aspx");
}
در صورتی که همین مشکل را با زیر شاخه ها هم داشتید می توانید این کد را بست دهید:
void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.AppRelativeCurrentExecutionFilePath == "~/")
HttpContext.Current.RewritePath("default.aspx");
if (Request.AppRelativeCurrentExecutionFilePath == "~/fa")
HttpContext.Current.RewritePath("/fa/default.aspx");
}