AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 39989
In Process
Adrian Godong
Adrian Godong
Asked: 2009-07-14 08:59:52 +0800 CST2009-07-14 08:59:52 +0800 CST 2009-07-14 08:59:52 +0800 CST

IIS 无法提供某些文件扩展名

  • 772

我正在提供 .JSON 文件,但即使该文件存在,当访问任何文件时,IIS 也会不断抛出 404 错误。我尝试将其中一个文件重命名为 .JS,它可以工作。

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

windows-server-2003 iis http-status-code-404
  • 6 6 个回答
  • 24461 Views

6 个回答

  • Voted
  1. Evan Anderson
    2009-07-14T09:09:26+08:002009-07-14T09:09:26+08:00

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

    您需要将 MIME 类型添加到 IIS 以允许它为该类型的文件提供服务。您可以在站点级别或服务器级别进行设置。

    为整个服务器设置这个:

    • 在 IIS 管理器中打开服务器的属性,然后单击 MIME 类型
    • 点击“新建”。为扩展名输入“JSON”,为 MIME 类型输入“application/json”。
    • 22
  2. Eric Falsken
    2010-02-02T12:22:54+08:002010-02-02T12:22:54+08:00

    我有同样的问题。IIS 执行称为 MIME 类型过滤的操作。如果它不知道特定文件扩展名的 MIME 类型,则返回 404 错误。

    在 IIS <7 上: 打开站点(或服务器)属性。单击HTTP 标头选项卡。单击MIME 类型按钮。使用 MIME 类型“application/octet-stream”添加文件类型 *。

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

    • 3
  3. neildeadman
    2013-04-09T06:47:14+08:002013-04-09T06:47:14+08:00

    我在 IIS 中的站点中添加了 MIME 类型.json,text/json以便在浏览器中以文本形式查看。

    • 2
  4. TristanK
    2011-11-16T02:11:26+08:002011-11-16T02:11:26+08:00

    要将答案合并为一个更一般的答案:

    • IIS 不会提供没有与之关联的 MIME 类型的文件
      • 请参阅:IIS 6.0 将不提供未知的 MIME 类型
      • 并且:在 IIS 7 中配置 MIME 类型

    警告来了:

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

    如果您遇到此类问题,请打开网站的网络日志文件,并查看子状态代码(即 404 3)以确定您的网站不为 IIS 6 提供内容的确切原因,或者

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

    在 IIS 7 中。

    • 1
  5. bgmCoder
    2014-03-09T07:41:24+08:002014-03-09T07:41:24+08:00

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

    这些人说您需要添加 MIME 类型都是正确的。

    MIME 类型在服务器上启用文件扩展名,并且映射处理程序告诉 IIS 如何处理它。

    因此,您还必须添加 Mapping Handler,为此您必须安装名为 Classic Asp的 Windows 功能才能处理映射。

    以下是添加映射处理程序的方法:

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

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

    • 1
  6. Glen Little
    2020-04-05T11:40:36+08:002020-04-05T11:40:36+08:00

    还要检查 IIS 中的请求过滤。如果“.json”在那里并且被阻止,那么其他任何事情都不会起作用。

    在此处输入图像描述

    • 0

相关问题

  • 如何在 IIS 中发送响应标头?

  • IIS 优化

  • 有什么理由使用 Windows Server 2003 而不是 Server 2008?

  • IIS 6.0 (Windows Server 2003) 备份的最佳实践?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve