我在Visual Studio 2010下创建了一个默认的WebSite。 在Global.asax中添加了一个简单的路由:
routes.MapPageRoute("AboutRoute", "about", "~/About.aspx");
当我启动 ASP.NET Development Server 并浏览到“http:// localhost:6521 / WebSite1 / about”时,显示404
但是当我将about
更改为about.axd
时(注意.axd扩展名)并浏览到/WebSite1/about.axd
我需要在web.config中更改什么才能使Development Server像IIS一样工作(正确处理无扩展名的URL)?
答案 0 :(得分:0)
当我启动ASP.NET Development Server并浏览到时,显示404 的 “http://本地主机:6521 /的WebSite1 /约”
我准备了一个示例Web应用程序,它给了我关于我们和Default.aspx页面。 在default.aspx页面中,我编写了以下代码....
protected void Page_Load(object sender, EventArgs e)
{
Response.Redirect(Page.GetRouteUrl("AboutRoute",
new { ID = "Evgenyt" }));
}
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/AboutUs.aspx
我需要在web.config中进行哪些更改才能使Development Server正常工作 正如IIS那样(正确处理无扩展名的URL)?
Reference - 与URLMapping
不同,URLRouting不会发生在Web.config中。它可以使用代码实现。您可以使用Glogal.asax.cs文件中的代码中提到的Application_Start Event来注册应用程序的所有路由。要注册路由,您可以在RouteTable
命名空间中使用System.Web.Routing
类。