当我启动 ASP.NET Development Server 并浏览到时,显示 404
“http://localhost:6521/WebSite1/about”
我准备了一个示例 Web 应用程序,其中提供了“关于我们”和“Default.aspx”页面。
在default.aspx页面中,我编写了以下代码......
Default.aspx.cs代码
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect(Page.GetRouteUrl("AboutRoute",
new { ID = "Evgenyt" }));
}
Global.asax.cs代码
public class Global : System.Web.HttpApplication
{
private void RegisterRoute(RouteCollection Routes)
{
Routes.MapPageRoute("AboutRoute", "about/{ID}", "~/About.aspx");
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoute(RouteTable.Routes);
// Code that runs on application startup
}
}
然后我发布了代码并在IIS上进行了配置。现在,当请求到达 IIS 时,它会将消息路由到 aspnet_isapi.dll ISAPI 扩展。然后,ISAPI 扩展加载 default.aspx 页面,执行它,并将其呈现的 HTML 返回给 IIS,最后 IIS 将其发送回客户端。
结果网址
http://localhost/Demo/about/Evgenyt http://localhost/Demo/about/Evgenyt
实际网址
http://localhost/Demo/AboutUs.aspx http://localhost/Demo/AboutUs.aspx
我需要在 web.config 中更改哪些内容才能使开发服务器正常工作
就像 IIS 那样(正确处理无扩展名的 URL)?
- 不像URLMapping
、URLRouting 不会发生在 Web.config 中。可以使用代码来实现。您可以使用 Glogal.asax.cs 文件中的代码中提到的 Application_Start 事件来注册应用程序的所有路由。要注册路线,您可以使用RouteTable
上课于System.Web.Routing
命名空间。