我已经阅读所有这些文章关于如何使系统。网。路由选择工作,但所有这些文章说明了上localhost:口。我可以得到这个工作月的当地机,但只要我上传网站的服务器、路由停止工作无论我做什么。

首先,我想没有任何扩展名(.aspx),但之后的所有努力,我放弃,并增加了扩展,但它仍然没有工作,在服务器上。

任何帮助表示赞赏。

示例:

global.ascx

Route test = new Route("home.aspx", new TestRoutingHandler());
Routes.Add(test); 

在路由选择处理程序

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));
}

在网。config下httpModules

add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 

这是如此的简单和工作在一个地方机,但是不上网服务器。

有帮助吗?

解决方案

确认网服务器配置,以处理所有的请求ASP.NET (也称为配符handler)。如果不是,它只会请求通过ASP.NET 如果的确切路径要求对应于物理磁盘上的文件和有.aspx扩展。很明显的路由概念完全失败的第一个条件,通常是第二次。

菲尔*哈克有一个 伟大的演练 关于如何做到这一点 IIS6.

对于 IIS7, 你只需要拥有的 正确的模块和处理程序 下指定的系统。网络服务器的网络。config。

其他提示

有关IIS7 +我发现添加到web.config的部分突然使一切工作:

<modules runAllManagedModulesForAllRequests="true" />

令人混淆,因为在卡西尼Web服务器上运行的VS,它的工作就好了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top