【发布时间】:2014-05-20 08:44:16
【问题描述】:
我在我的 asp.net mvc 应用程序中添加了一个自定义 404 页面。除了一些已从 MVC 路由引擎中排除的路径外,它的效果非常好。您可以想象,我希望我的 404 页面也适用于这些 URL。
所以问题是:我可以在 IIS 中添加一些设置,以便将其指向 404 页面的端点。
谢谢!
【问题讨论】:
标签: asp.net-mvc iis http-status-code-404
我在我的 asp.net mvc 应用程序中添加了一个自定义 404 页面。除了一些已从 MVC 路由引擎中排除的路径外,它的效果非常好。您可以想象,我希望我的 404 页面也适用于这些 URL。
所以问题是:我可以在 IIS 中添加一些设置,以便将其指向 404 页面的端点。
谢谢!
【问题讨论】:
标签: asp.net-mvc iis http-status-code-404
不,IIS 上没有任何自定义设置。
为我工作。我在 web.confg 中设置了以下设置
我的 RegisterRoutes 方法如下
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
【讨论】:
我最终写了一个StaticContentController,它只是打开一个文件流并将其返回给浏览器。该路径由路由引擎严格控制以避免安全问题,并且被大量缓存。
关于文件流的注释,当我第一次实现它时,我使用了 MVC 的 return File(... 方法,但是在文件流传输时会锁定文件,所以我有一些文件争用的实例和同时服务。这就是为什么我切换到返回FileStream,这样我就可以传递正确的文件共享选项,允许文件被另一个进程写入。
【讨论】: