.Net 4路由在IIS6上无法正常工作(样式表/图像拦截)

时间:2012-07-02 13:41:31

标签: asp.net .net c#-4.0 routing iis-6

我有一个移动网站,拦截样式表/图像并设置相对于设备的尺寸。我一直在IIS7上测试它并且工作正常。

直播网站是IIS6(惊喜)......

友好网址的正常路由工作正常,但样式表/图片拦截没有做任何事情。

以下是我的global.asax路由部分的片段:

public static void RegisterRoutes(RouteCollection routes)
{
                routes.RouteExistingFiles = true;

                routes.MapPageRoute("ImageResizerS", "images/{Sub}/{Path}", "~/Site_Handlers/ImageResize.ashx");
                routes.MapPageRoute("ImageResizer", "images/{Path}", "~/Site_Handlers/ImageResize.ashx");

                routes.MapPageRoute("StyleSheetIntercept", "Styles/{Path}", "~/Site_Handlers/InterceptStyleSheet.ashx");

                routes.MapPageRoute("Landing page", "", "~/Site_Files/LandingPage.aspx");
    }

似乎有什么问题?

我注意到了:

当我将routes.RouteExistingFiles = true;设置为 false 时。它在IIS7上创建了相同的行为。 IIS6 ......没有拦截。

2 个答案:

答案 0 :(得分:1)

在IIS6中,您需要启用通配符映射以确保正确的处理程序获取请求(在本例中为ASP.Net),否则它将像静态网页一样提供。有关如何使用,请参阅Microsoft web site

步骤4中的可执行路径将根据您的.Net版本而有所不同,但最简单的方法是从.Net已处理的其他映射(.aspx,.ashx等)中复制该值。

答案 1 :(得分:0)

在服务器上,打开IIS:

  1. 右键单击站点/虚拟目录,选择属性
  2. 转到主目录/虚拟目录选项卡,单击配置(靠近底部)
  3. 再次靠近底部,单击插入按钮
  4. 输入 C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll - 在这种情况下使用v4。
  5. 取消选中“验证文件是否存在”按钮,单击“确定”并关闭所有对话
  6. 参考: ASP.NET routing on IIS 6