ASP.NET FileContentResult始终在生产中404

时间:2013-09-23 21:26:23

标签: asp.net-mvc-3 http-status-code-404 web-deployment

我有一个表现奇怪的ASP.NET MVC 3 Web应用程序。有一个动作可以让我下载一个测试文件:

    [HttpGet]
    public ActionResult Download()
    {
        var cd = new System.Net.Mime.ContentDisposition
            {
                FileName = "test_file.txt",
                Inline = false,
            };

        Response.AppendHeader("Content-Disposition", cd.ToString());
        return File(System.Text.Encoding.Unicode.GetBytes("HELLO THERE"), "text/plain");
    }

在调试模式下它没有问题,我按预期获得文件下载(“test_file.txt”,内容为“HELLO THERE”)。

发布并使用IIS 6部署时,始终返回404错误。任何人都知道为什么差异以及如何解决它?

1 个答案:

答案 0 :(得分:1)

原来问题是路由和IIS配置的组合。我有一些动作参数,其中一个包含文件扩展名。我设置了一条路线,以便参数格式为

    ../Download/[text].txt

而不是

    ../Download?[text].txt

IIS正在尝试访问文件系统上的文件。我删除了自定义路线,所有问题都已解决。