IIS不能服务某些文件扩展名

我服务的.JSON文件,但即使该文件存在,IIS访问任何文件时保持抛出404错误。 我试图重命名文件的一个.JS,它的工作原理。

任何指针什么设置可以导致这个问题?

    默认情况下,W2K3及更高版本中的IIS不会提供非知道的MIMEtypes的文件(而是返回404错误)。

    您需要将一个MIMEtypes添加到IIS以允许它提供该types的文件。 您可以在网站级别或在服务器级别进行设置。

    要为整个服务器设置:

    • 在IISpipe理器中打开服务器的属性,然后单击MIMEtypes
    • 点击“新build”。 为扩展名input“JSON”,为MIMEtypesinput“application / json”。

    我有同样的问题。 IIS做一些称为MIMEtypes过滤。 如果它不知道特定文件扩展名的MIMEtypes,则返回404错误。

    在IIS上<7:打开站点(或服务器)属性。 点击HTTP-Header选项卡。 点击MIMEtypesbutton。 添加文件types*为MIMEtypes“application / octet-stream”。

    对于IIS 7:打开IISpipe理器。 点击服务器或网站。 双击MIMEtypesfunction图标。 在“操作”窗格中,单击“ 添加” 。 用*和“application / octet-stream”填充“文件扩展名”框。

    我将MIMEtypes.jsontext/json到IIS中的站点,以便在浏览器中以文本的forms进行查看。

    把答案整合成一个更一般的答案:

    • IIS不会提供没有与它们关联的MIMEtypes的文件
      • 请参阅: IIS 6.0不会提供未知的MIMEtypes
      • 并且: 在IIS 7中configurationMIMEtypes

    警告:

    • 除非脚本处理程序(活动内容引擎,例如ASP / ASPX / PHP / Java / ISAPI /等)与它们相关联
      • 这意味着IIS将它们视为活动内容 ,而不是静态文件
    • 任何扩展程序提供的活动内容文件必须在Web Service Extensions限制列表中允许使用该扩展名(也称为IIS 7中的ISAPI / CGI限制)
      • 如果您在IIS 7中的活动内容types上获得404,则可能还意味着您的处理程序未安装 – 因此您需要实际安装支持该文件扩展名的组件(例如,如果.aspx文件生成404,你可能没有安装ASP.Net)

    如果您遇到这种问题,请打开网站的networking日志文件,并查看子状态代码(即404 3),以确定您的网站为什么没有为IIS 6提供内容,或

    • 使用失败的请求追踪
    • (或只是在本地控制台上的详细错误)

    在IIS 7中。

    我也有这个问题 – 问题原来是json文件存储的文件夹的文件权限。 我在这里回答了类似的问题 。

    这些人都说你需要添加MIMEtypes是正确的。

    MIMEtypes启用服务器上的文件扩展名,映射处理程序告诉IIS如何处理它。

    因此,您还必须添加映射处理 程序 ,为了处理映射,您必须安装称为Classic Asp的Windowsfunction。

    以下是如何添加映射处理程序:

    1. 打开IIS7pipe理器
    2. 转到IIS服务器的属性(或只是该网站,如果你不想要一个全局设置)
    3. 点击Handler Mappings
    4. 点击Add a Script Map
    5. input属性:
      • 请求path: *.json
      • 可执行文件: C:\WINDOWS\system32\inetsrv\asp.dll
      • 名称: JSON (你可以任意调用它)
    6. 点击确定,就完成了。 它应该开始工作,你不需要IIS重置。

    此外,有些人会告诉你使用`application / x-javascript'作为mimetypes的应用程序,但是JSON 本身不是javascript(它一个子集),所以它应该是'application / json'因为IANA注册的JSON媒体types。