0

我有一个移动网站,截取样式表/图像并设置相对于设备的大小。我一直在 IIS7 上对其进行测试并且工作正常。

现场站点是 IIS6(惊喜)...

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

这是我的 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 上创建相同的行为...没有拦截。

4

2 回答 2

1

在 IIS6 中,您需要启用通配符映射以确保正确的处理程序获取请求(在本例中为 ASP.Net),否则它将像静态网页一样提供服务。有关操作方法,请参见Microsoft 网站

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

于 2012-07-02T14:50:53.127 回答
0

在服务器上,打开 IIS:

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

参考: IIS 6 上的 ASP.NET 路由

于 2012-07-03T13:32:51.413 回答