我有一个与文件路径同名的控制器操作。像:
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
);
我错过了什么?它工作得很好。
答案 0 :(得分:1)
所以我发现我的问题是我们确实为网站启用了通配符映射,但是,由于性能的原因,我们也为某些目录关闭了它。我已经为相关目录重新启用了通配符,这一切都开始像我的开发盒一样工作了。喜悦!
答案 1 :(得分:0)
我知道这已经得到了回答,因为这可能对某人有所帮助。在您的web.config中,您可能需要添加runAllManagedModulesForAllRequests =“true”
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
希望这有助于某人。