.msg文件给出了下载错误

时间:2012-03-15 10:37:20

标签: c# asp.net outlook http-status-code-404

在我的应用程序中,我在服务器上保留了一些文件,并使它们可以在某些业务逻辑上下载。

所有其他文件类型都已下载,但.msg(Outlook message)文件未下载并显示错误:

404 - File or directory not found. The resource you are looking for might
have been removed, had its name changed, or is temporarily unavailable.

图像,.docx,.txt所有其他文件都运行良好。

该页面是在ASP.NET中设计的,并在标记后的客户端站点设计。

4 个答案:

答案 0 :(得分:14)

在ASP.NET forum上找到。

创建处理程序,将其下载为文件:

Response.ContentType = "application/vnd.ms-outlook";
Response.AppendHeader("Content-Disposition","attachment; filename=Message.msg");
Response.TransmitFile(Server.MapPath(YourPathToMsgFile));
Response.End();

或更改IIS 6.0中的设置:

  

选择HTTP标头 - >点击MIME类型 - >单击New并将“.msg”添加为扩展名,将“application / vnd.ms-outlook”添加为MIME类型。

答案 1 :(得分:3)

使用下面的标签我们可以直接提到标签的文件名。

   <a href="Your File_Location">Download Link</a>

无需在控制器中指定代码。

只需将以下标记添加到

中的web.config即可
  <staticContent>
    <mimeMap fileExtension=".msg" mimeType="application/octet-stream" />
</staticContent>

答案 2 :(得分:1)

<system.webServer>   
    <staticContent>
      <mimeMap fileExtension=".msg" mimeType="application/octet-stream" />
    </staticContent>
</system.webServer>

答案 3 :(得分:0)

这是我在ASP.NET论坛上找到的另一个答复。包含在此处以节省时间。

如果ASP.NET Core本身正在处理静态内容并在边缘运行,或者如果您需要ASP.NET Core来了解mime类型,则需要配置ASP.NET Core的处理程序来了解它。使用FileExtensionContentTypeProvider如下所示:

public void Configure(IApplicationBuilder app)
{
    // Set up custom content types - associating file extension to MIME type
    var provider = new FileExtensionContentTypeProvider();
    // Replace an existing mapping
    provider.Mappings[".msg"] = "application/vnd.ms-outlook";

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/StaticContentDir",
        ContentTypeProvider = provider
    });

谢里德(Sherry Chan)

ASPNET Forum LINK