3

为避免静态请求影响性能,我想使用 ASP.NET v4.0 无扩展 URL 功能,但它不起作用。

我的环境:

  1. Windows 服务器 sp2 和 IIS6
  2. asp.net MVC 3 与 .net 4
  3. 该站点针对 ASP.NET 4.0 进行了配置,并且没有虚拟文件夹
  4. 没有 isapi 重写

我请求了“http://domain.com/home/”之类的 url,然后得到“/home/eurl.axd/f7e1f50533b94f47869a8856c16dffdf/”404 错误。

错误信息显示:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.1

似乎:aspnet_filter.dll 将“/eurl.axd/GUID”附加到无扩展 URL 和 aspnet_isapi.dll 不会删除“/eurl.axd/GUID”。

我想知道如何解决这个问题?(我需要无扩展名的 url,不能使用通配符脚本映射)

谢谢

更新 - 已解决

删除根网站的 ISAPI 过滤器中的 v2.0 aspnet_isapi.dll

4

2 回答 2

1

要使用 ASP.NET v4 无扩展 URL 功能,请查看以下列表:

1) v4.0 aspnet_filter.dll 在 Web 服务器级别注册为 ISAPI 过滤器。

2) “.axd”是在网站级别映射到 v4.0 aspnet_isapi.dll 的脚本。

3) 网站具有阅读和脚本权限。

4)注册表中的“EnableExtensionlessUrls”未设置或设置为1。

5)网站配置为asp.net 4.0

6) v2.0 aspnet_filter.dll 没有注册,检查根网站的ISAPI过滤器列表(这是我的问题)

如果上述检查通过,您唯一需要的其他东西就是路由表或一些将 URL 重新映射到托管处理程序的 ASP.NET 代码。

于 2012-07-05T02:26:39.910 回答
0

Notice that IIS 6 and IIS 7 have two different pipelines and so ASP.NET applications run differently in these two invironments.

Please read: ASP.NET Integration with IIS 7

In IIS 7, the ASP.NET request-processing pipeline overlays the IIS pipeline directly, essentially providing a wrapper over it instead of plugging into it.

but

In IIS 6.0 and previous releases, ASP.NET was implemented as an IIS ISAPI extension.

于 2012-07-04T14:57:08.397 回答