首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web服务器上的system.web.routing不工作

web服务器上的system.web.routing不工作
EN

Stack Overflow用户
提问于 2009-05-23 00:20:59
回答 2查看 3.1K关注 0票数 3

我读过所有这些关于如何让system.web.routing工作的文章,但是所有这些文章都是关于localhost:port的解释。我可以让它在本地机器上运行,但一旦我将站点上传到服务器上,无论我做什么,路由都会停止工作。

首先,我尝试不使用任何扩展名(.aspx),但经过所有努力后,我放弃并添加了扩展名,但它仍然不能在服务器上工作。

任何帮助都是非常感谢的。

示例:

global.ascx

代码语言:javascript
复制
Route test = new Route("home.aspx", new TestRoutingHandler());
Routes.Add(test); 

在路由处理程序中

代码语言:javascript
复制
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));
}

在httpModules下的web.config中

代码语言:javascript
复制
add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 

这很简单,可以在本地机器上运行,但不能在web服务器上运行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-23 00:25:53

验证web服务器是否配置为使用ASP.NET (也称为通配符处理程序)处理所有请求。如果不是,它将仅在所请求的确切路径对应于磁盘上的物理文件并且扩展名为.aspx的情况下才通过ASP.NET服务请求。显然,路由概念完全不符合第一个条件,通常也不符合第二个条件。

Phil Haack有一个关于如何在IIS6中做到这一点的great walkthrough

对于IIS7,您只需要在web.config中的system.webServer下指定correct modules and handlers

票数 0
EN

Stack Overflow用户

发布于 2010-12-12 01:38:35

对于IIS7+,我发现添加到Web.config的部分突然让一切都正常了:

代码语言:javascript
复制
<modules runAllManagedModulesForAllRequests="true" />

与运行在Cassini web服务器上的VS一样令人困惑,它工作得很好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/900510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档