问一个ASP.NET MVC 路由中含文件名的问题(急)

popcorn 2011-07-26 10:00:50
我设置了以下路由:

routes.MapRoute(
"Download", // 路由名称
"Download/{filename}", // 带有参数的 URL
new { controller = "Download", name = "Download", action = "Index", filename = UrlParameter.Optional } // 参数默认值
);



目的是想访问http://localhost/Download/abc.rar的时候交给DownloadController去处理,在控制器中能获取到文件名,然后再去读取相应的文件

public ActionResult Index(string filename)
{ string file = "d:\files\"+ filename;
return this.File(file, "application/octet-stream", filename);
}


在本地测试的时候(用的IIS Express或VS的服务器)没有发现什么问题,但是部署到服务器上的IIS的时候,提示404错误,不能找到文件。我想可能是IIS中处理的时候把文件名当做文件去找了,并没有交给URL路由来处理。,但是如果访问http://localhost/Download/abc,不加后缀名就可以交给URL路由来处理。

不知道有没有什么办法在哪里设置一下让所有的URL都由路由来处理呢?

...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
adandelion 2011-11-07
  • 打赏
  • 举报
回复
ooooooooooooo
q107770540 2011-07-26
  • 打赏
  • 举报
回复
增加NETWORKSERVICE用户权限 试试看
threenewbee 2011-07-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/host-2008/archive/2009/03/27/1422978.html

注意:您只能在故障排除过程中将通配符映射添加到 IIS MIME 映射中,以作为一种临时解决方案。确定缺少 MIME 类型是问题的原因后,请删除通配符映射,然后添加需要处理的 MIME 类型的特定映射。
打开 IIS Microsoft 管理控制台 (MMC),右键单击本地计算机名称,然后单击“属性”。
单击“MIME 类型”。
单击“新建”。
在“扩展名”框中,键入星号 (*)。
在“MIME 类型”框中,键入 application/octet-stream。
应用新设置。请注意,您必须重新启动“万维网发布服务”或等待工作进程循环以使更改生效。
popcorn 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caozhy 的回复:]

引用 3 楼 popcorn 的回复:
引用 2 楼 caozhy 的回复:

IIS6.0?设置允许未知MIME类型,以及ISAPI处理取消检测文件是否存在。


如果文件类型很多,那得一个个去加吗?还有没有其它什么办法?

不是啊,允许未知以后无论什么类型都可以了。
[/Quote]
我用通配符应用程序映射可以解决了。但不知道你说的允许未知MIME类型是在哪里进行设置?
threenewbee 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 popcorn 的回复:]
引用 2 楼 caozhy 的回复:

IIS6.0?设置允许未知MIME类型,以及ISAPI处理取消检测文件是否存在。


如果文件类型很多,那得一个个去加吗?还有没有其它什么办法?
[/Quote]
不是啊,允许未知以后无论什么类型都可以了。
popcorn 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caozhy 的回复:]

IIS6.0?设置允许未知MIME类型,以及ISAPI处理取消检测文件是否存在。
[/Quote]

如果文件类型很多,那得一个个去加吗?还有没有其它什么办法?
threenewbee 2011-07-26
  • 打赏
  • 举报
回复
IIS6.0?设置允许未知MIME类型,以及ISAPI处理取消检测文件是否存在。
renyiqiu 2011-07-26
  • 打赏
  • 举报
回复
帮顶下!!

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧