1

我有一个行为异常的 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 错误。任何人都知道为什么会有差异以及如何解决它?

4

1 回答 1

1

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

    ../Download/[text].txt

代替

    ../Download?[text].txt

IIS 将其读取为试图访问文件系统上的文件。我删除了自定义路线,一切都已解决。

于 2013-09-24T14:19:13.717 回答