用于jpg文件的ASP.net MVC 3路由

用于jpg文件的ASP.net MVC 3路由,asp.net,asp.net-mvc-3,routing,iis-7.5,jpeg,Asp.net,Asp.net Mvc 3,Routing,Iis 7.5,Jpeg,我在global.asax中有一个使用此路径的MVC 3应用程序 routes.MapRoute( "ProfilePictureSmall", // Route name "small/{PictureID}.jpg", // URL with parameters new { controller = "Pictu

我在global.asax中有一个使用此路径的MVC 3应用程序

routes.MapRoute(
            "ProfilePictureSmall",                             // Route name
            "small/{PictureID}.jpg",                           // URL with parameters
            new { controller = "Picture", action = "Show", Size = "small", PictureID = Guid.Empty }  // Parameter defaults
        );
这是我的控制器的动作

public ActionResult Show(string Size, Guid PictureID)
此路由在我的计算机上不起作用,但在其他本地计算机、测试服务器和实时服务器上起作用。 它过去也可以在我的电脑上工作,但我最近重新安装了我的系统,所以我认为这与此有关

有人有什么想法吗

附言:所有其他路线都很好。
如果我删除.jpg

也可以使用此方法,因为它是新安装的Windows,.NET Framework可能是在IIS之前安装的,并且可能没有正确注册,因此静态文件处理程序可能试图提供不存在的jpg


请尝试为我运行
aspnet\u regiis.exe-i

,将此行添加到system.webServer内部的web.config

<modules runAllManagedModulesForAllRequests="true" />

修好了

顺便说一句,我使用的是.NETMVC4.0


通过重新安装IIS,我终于让它正常工作了

我不知道我到底做了什么,但以下是我在Windows7上安装IIS时检查的功能 控制面板/打开/关闭Windows功能/Internet信息服务

这些是我所做的唯一更改(没有代码/配置更改)


您的计算机上运行的IIS版本是什么?请确保您在与其他人相同的环境中运行该站点。我有IIS 7.5.7600.16385,与测试/活动计算机和其他本地计算机完全相同。我怀疑这是IIS错误地对其进行路由。根据HTTP处理程序可能是一种方法?感谢链接,但考虑到代码在许多其他机器上都能工作(就像在重新安装系统之前在我的机器上一样),我怀疑这是一个IIS配置问题。你找到解决方案了吗?我也有同样的问题。(使用MVC4)我已经有了那套。我正在使用MVC3.0。在不久的将来,我可能会迁移到MVC4。您也尝试过设置吗?routes.RouteExistingFiles=true我还没有。奇怪的是,相同的代码(包括配置文件)在许多其他机器上运行良好。这就是为什么我猜它与我的IIS配置或类似的奇怪的东西有关/small/{PictureID}.jpg-这些文件是否实际存在于该位置?如果是,routes.RouteExistingFiles=true为NesserArry。当你说它不工作时,它会忽略你的路线,只是显示原始图像,还是给你一个错误?