用asp.net重写URL.是否需要配置?

k0n*_*0ni 6 asp.net configuration url-rewriting

我正在尝试在我的项目中启用重写的URL.这篇文章中描述的非常好:scottgu的urlrewriting 当我在localhost上运行它时效果非常好,但是一旦我将它上传到我的主机(.net 3.5),它就无法正常工作!我总是被重定向到404页面!

是否需要配置才能启用此功能?斯科特古说不,但我不知道为什么它不起作用......

谢谢

//更新2.09.2010

实际上是否有一种方法可以在没有iis7的情况下启用路由或重写,或者能够在服务器上安装类似ISAPI Rewrite的模块?看起来我有一个糟糕的asp.net主机......

Den*_*ntz 4

在本地主机环境中,您可能正在 ASP.NET 开发服务器上运行网站。该服务器被设置为捕获所有请求 (* . *) 并通过 ASP.NET 管道运行它们。

另一方面,II6 配置为仅通过 ASP.NET 管道发送一些请求(即 *.aspx、*.asmx、*.ashx)。因此,如果您尝试捕获对“/my/fine/url”之类的 url 的请求,该请求将永远不会传递给 ASP.NET 处理程序,因此不会被重写。

您可以在网站的应用程序配置中更改此配置:

  1. 打开IIS管理器,右键单击网站,选择属性
  2. 在“主目录”选项卡上,单击“配置...”按钮。
  3. 单击“插入...”按钮插入通配符应用程序映射。
  4. 在“可执行文件:”中插入 aspnet_isapi.dll 的路径,在我的例子中为 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll (注意:此路径在您的服务器上可能有所不同)。
  5. 请记住取消选中“验证该文件是否存在”
  6. 单击“确定”!

所以!现在,您的所有请求都应该定向到 ASP.NET 处理程序,从而捕获到您的 URL 重写器中,无论扩展名如何。

但我必须承认,我有点不确定这将如何影响您网站的性能,通过 ASP.NET 处理程序路由对静态文件、CSS、图像等的所有请求。也许其他人对此有话要说。

/丹尼斯:-)