ASP.NET MVC路由和文件路径

时间:2010-08-20 20:24:31

标签: .net asp.net-mvc routing

我有一个与文件路径同名的控制器操作。像:

www.example.com/userfiles/path/to/userfile.jpg

基本上我有一个userfiles控制器,在userfiles /之后的所有内容都是一个路径。在我的应用程序的根目录中还有一个userfiles虚拟目录。我想要发生的是,如果userfiles /(在这种情况下是路径)后面的目录在userfiles虚拟目录中不存在,那么如果目录确实存在则使用userfilesController上的索引操作,然后使用路径,因为它是。

这在我运行iis 5的Windows xp dev机器上完美运行。但是,一旦我将它移动到实时服务器(Windows server 2003 iis 6),我得到一个404错误,好像路径不存在而不是去userfiles控制器索引操作。

在路线文件中我有:

routes.MapRoute(
    "Userfiles",                                       // Route name
    "userfiles/{*url}",                                // URL with parameters
    new { controller = "Userfiles", action = "Index" } // Parameter defaults
);

我错过了什么?它工作得很好。

2 个答案:

答案 0 :(得分:1)

所以我发现我的问题是我们确实为网站启用了通配符映射,但是,由于性能的原因,我们也为某些目录关闭了它。我已经为相关目录重新启用了通配符,这一切都开始像我的开发盒一样工作了。喜悦!

答案 1 :(得分:0)

我知道这已经得到了回答,因为这可能对某人有所帮助。在您的web.config中,您可能需要添加runAllManagedModulesForAllRequests =“true”

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />

希望这有助于某人。