Asp.net web服务器上的system.web.routing不工作
我已经阅读了所有这些关于如何使system.web.routing工作的文章,但所有这些文章都解释了localhost:port。我可以让它在本地机器上运行,但一旦我将站点上传到服务器上,无论我做什么,路由都会停止工作 首先,我在没有任何扩展(.aspx)的情况下进行了尝试,但经过所有努力,我放弃了并添加了扩展,但它仍然无法在服务器上工作 感谢您的帮助 样本: 在Asp.net web服务器上的system.web.routing不工作,asp.net,asp.net-routing,Asp.net,Asp.net Routing,我已经阅读了所有这些关于如何使system.web.routing工作的文章,但所有这些文章都解释了localhost:port。我可以让它在本地机器上运行,但一旦我将站点上传到服务器上,无论我做什么,路由都会停止工作 首先,我在没有任何扩展(.aspx)的情况下进行了尝试,但经过所有努力,我放弃了并添加了扩展,但它仍然无法在服务器上工作 感谢您的帮助 样本: 在global.ascx中 在路由处理程序中 在httpModules下的web.config中 这非常简单,可以在本地计算机上运行,但
global.ascx中
在路由处理程序中
在httpModules下的web.config中
这非常简单,可以在本地计算机上运行,但不能在web服务器上运行。请验证web服务器是否配置为使用ASP.NET(也称为通配符处理程序)处理所有请求。如果不是,它将仅通过ASP.NET提供请求,前提是请求的确切路径对应于磁盘上的物理文件,并且扩展名为.aspx。显然,路由概念完全不符合第一个条件,通常是第二个条件 Phil Haack对如何在IIS 6中实现这一点有自己的见解
对于IIS 7,您只需要在web.config中的system.webServer下指定。对于IIS7+i,我发现添加到web.config的部分突然使一切正常:
<modules runAllManagedModulesForAllRequests="true" />
与卡西尼网络服务器上运行的VS一样令人困惑,它工作得很好。感谢您的回答。我为这个问题苦苦挣扎了几个小时。
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string virtualPath = string.Empty;
Route route = (Route)requestContext.RouteData.Route;
virtualPath = "~/Default.aspx";
return (Page)BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page));
}
add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
<modules runAllManagedModulesForAllRequests="true" />