ASP.NET路由(在WebForms中)在IIS下部署时无效,在IDE中工作

时间:2010-03-17 01:45:33

标签: asp.net url url-routing

我有一个在VS 2008中开发的ASP.NET Web应用程序(webforms,而不是MVC),我已经通过以下链接实现了ASP.NET Web表单URL路由    http://www.4guysfromrolla.com/articles/051309-1.aspx#postadlink

当我在Visual studion IDE上运行它时它工作得很好。但是当我在我的IIS(在XP中的IIS 5.1)下创建一个站点并在那里部署相同的文件时,它不起作用。我将ASP.NET版本设置为在我的应用程序的属性窗口中也是2.0。但是不起作用。知道为什么? 还有什么要设置的吗?提前致谢

3 个答案:

答案 0 :(得分:3)

尝试使用“使用带有不同版本的IIS的ASP.NET MVC”中的以下内容@ http://www.asp.net/%28S%28ywiyuluxr3qb2dfva1z5lgeg%29%29/learn/mvc/tutorial-08-cs.aspx

创建通配符脚本地图
如果您不想修改ASP.NET MVC应用程序的URL,并且可以访问Web服务器,则可以选择其他选项。您可以创建一个通配符脚本映射,将Web服务器的所有请求映射到ASP.NET框架。这样,您可以使用IIS 7.0(在经典模式下)或IIS 6.0中的默认ASP.NET MVC路由表。

请注意,此选项会导致IIS拦截对Web服务器发出的每个请求。这包括对图像,经典ASP页面和HTML页面的请求。因此,启用通配符脚本映射到ASP.NET确实会影响性能。

按照以下步骤使用IIS 6.0创建通配符脚本映射:
   1.右键单击网站,然后选择属性
   2.选择主目录选项卡
   3.单击配置按钮
   4.选择Mappings选项卡
   5.单击“插入”按钮(参见图4)
   6.将aspnet_isapi.dll的路径粘贴到Executable字段中(您可以从.aspx文件的脚本映射中复制此路径)
   7.在“扩展”字段中填写“。*”    8.取消选中标记为验证文件存在的复选框    9.单击确定按钮

答案 1 :(得分:1)

答案 2 :(得分:0)

您是尝试重写特定的文件扩展名,还是尝试路由所有请求?

我问的原因是因为您在IIS 5.1上可能没有成功使用通配符路由。

如果为ASP.NET ISAPI筛选器指定通配符映射,则它适用于IIS6。 Link with more info

IIS7通过集成管道支持此功能。