我有一个与文件路径同名的控制器操作。像这样:
www.example.com/userfiles/path/to/userfile.jpg基本上,我有一个userfiles控制器,在索引操作中,userfiles/之后的所有内容都是一个路径。在我的应用程序的根目录中还有一个userfiles虚拟目录。我希望发生的是,如果userfiles/之后的目录(在本例中为path)在userfiles虚拟目录中不存在,则在userfilesController上使用索引操作(如果该目录确实存在),然后按原样使用path。
这在我的运行iis 5的windows xp dev机器上运行得很完美。但是,一旦我把它移到实时服务器(Windows server 2003 iis 6)上,我得到了一个404错误,就好像该路径不存在一样,而不是转到userfiles控制器索引操作。
在routes文件中,我有:
routes.MapRoute(
"Userfiles", // Route name
"userfiles/{*url}", // URL with parameters
new { controller = "Userfiles", action = "Index" } // Parameter defaults
);我遗漏了什么?它工作得很好。
发布于 2010-08-24 21:50:11
所以我发现我的问题是,我们确实为站点启用了通配符映射,但是,由于性能原因,我们也为某些目录关闭了它。我已经为有问题的目录重新启用了通配符,这一切都开始像在我的dev box上一样工作。Joy!
发布于 2012-10-20 19:32:10
我知道这个问题已经得到了回答,我认为这可能会对某些人有所帮助。在你的web.config中,你可能需要添加runAllManagedModulesForAllRequests="true“
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />希望这对某些人有帮助。
https://stackoverflow.com/questions/3534602
复制相似问题