【问题标题】:Allow loading of JSON files in Visual Studio Express 2013 for Web允许在 Visual Studio Express 2013 for Web 中加载 JSON 文件
【发布时间】:2013-10-31 06:17:16
【问题描述】:

我有一个问题,即来自 Visual Studio Express 2013 for Web 的 IIS 不允许加载 *.json 文件。尝试加载 *.json 文件时,我得到一个 403 Forbidden 和一个帮助页面,如何配置 IIS 允许加载 JSON 文件,但不知道如何处理这些信息/IIS 所在的位置。

这是错误页面:

HTTP 错误 404.3 - 找不到您请求的页面无法 由于扩展配置而提供服务。如果页面是 脚本,添加处理程序。如果应该下载文件,请添加 MIME 地图。

最可能的原因:处理程序映射可能丢失。 默认情况下,静态文件处理程序处理所有内容。特点 您尝试使用的可能没有安装。适当的 MIME 映射 没有为网站或应用程序启用。 (警告:不要 为用户不应下载的内容创建 MIME 映射,例如 .ASPX 页面或 .config 文件。)如果未安装 ASP.NET。

您可以尝试的事情: 在 system.webServer/handlers 中:确保 当前页面的预期处理程序已映射。特别注意 前置条件(例如,runtimeVersion、pipelineMode、bitness) 并将它们与您的应用程序池的设置进行比较。支付额外费用 注意预期处理程序行中的印刷错误。请 验证您尝试使用的功能是否已安装。核实 启用 MIME 映射或为网站添加 MIME 映射 使用命令行工具 appcmd.exe。要设置 MIME 类型,请运行 IIS Express 安装目录中的以下命令:appcmd set 配置/节:静态内容 /+[fileExtension='string',mimeType='string'] 变量 fileExtension 字符串是文件扩展名和变量 mimeType 字符串是文件类型描述。例如,添加一个 扩展名为“.xyz”的文件的 MIME 映射:appcmd set config /section:staticContent /+[fileExtension='.xyz',mimeType='text/plain'] 警告:确保您的 Web 服务器需要此 MIME 映射 在将其添加到列表之前。配置文件,例如 .CONFIG 或 .ASP 或 .ASPX 等动态脚本页面不应 直接下载并应始终通过处理程序进行处理。 其他文件,例如数据库文件或用于存储的文件 配置,如 .XML 或 .MDF,有时用于存储 配置信息。确定客户是否可以下载这些 文件类型,然后再启用它们。安装 ASP.NET。检查失败的 请求跟踪日志以获取有关此错误的其他信息。为了 更多信息,请点击这里。

详细错误信息:模块 StaticFileModule 通知
ExecuteRequestHandler 处理程序静态文件错误代码 0x80070032 请求的 URL http://localhost:64107/Settings/Settings.json 物理路径 D:\GIT\RepoP_Paneon\Settings\Settings.json 登录 方法匿名登录用户匿名请求跟踪目录
C:\Users\stefank\Documents\IISExpress\TraceLogFiles\REPOP_PANEON

更多信息:当文件扩展名 请求的 URL 用于未在服务器上配置的 MIME 类型。 您可以为非文件的文件扩展名添加 MIME 类型 动态脚本页面、数据库或配置文件。过程 使用处理程序的那些文件类型。你不应该允许直接 下载动态脚本页面、数据库或配置文件。 查看更多信息 »

【问题讨论】:

    标签: iis visual-studio-2013


    【解决方案1】:

    经过一番谷歌搜索和实验,我发现您必须在 Web.config 中定义 IIS 设置。

    添加如下配置后:

      <system.webServer>
        <staticContent>
          <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
      </system.webServer>
    

    它就像一个魅力。

    完整的设置文件示例:

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true" targetFramework="4.0"/>
      </system.web>
      <system.webServer>
        <staticContent>
          <mimeMap fileExtension=".json" mimeType="application/json" />
        </staticContent>
      </system.webServer>
    </configuration>
    

    【讨论】:

    • 有趣,这对我不起作用。我正在使用 VS 2013、IIS Express、IE 11、.NET 4.5.1。
    • 你的配置文件看起来怎么样?
    • 这对我也不起作用。 .json 文件仍用作 html/text MIME 类型
    • 谢谢。它的工作对我来说就像一种魅力......你拯救了我的一天
    • 我必须在 mimeMap 之前添加&lt;remove fileExtension=".json" /&gt;
    【解决方案2】:

    最好添加删除标签,以防将来 IIS 内置 json 支持。这是我的 mimeMap 的 web.config 部分。

    <system.webServer>
      <staticContent>
          <remove fileExtension=".woff" />
          <remove fileExtension=".woff2" />
          <remove fileExtension=".json" />
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
          <mimeMap fileExtension=".json" mimeType="application/json" />
      </staticContent>
    <system.webServer>
    

    【讨论】:

      【解决方案3】:
      • 以管理员权限打开 CMD。
      • 转到:

        cd C:\Program Files\IIS Express
        cd C:\Program Files (x86)\IIS Express

      • 运行命令:

        appcmd set config /section:staticContent /+[fileExtension='JSON',mimeType='application/x-javascript']

      【讨论】:

        【解决方案4】:

        我们可能需要将 Visual Studio 开发环境(使用 IIS Express)与本地 IIS 和远程服务器(如 Azure 网站)区分开来。例如,为了专门针对 IIS Express,我们在system.webServer/staticContent 下编辑%USERPROFILE%\Documents\IISExpress\config\applicationhost.config

        <mimeMap fileExtension=".json" mimeType="application/javascript" />
        

        我需要做出这种区分,因为我的本地(内联网)IIS 已经定义了 JSON mime 类型。因此,当我部署到 Azure 网站时,我会在 Web.Release.config 中使用此转换:

        <system.webServer>
            <staticContent>
                <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" />
            </staticContent>
        </system.webServer>
        

        【讨论】:

          猜你喜欢
          • 2014-02-16
          • 1970-01-01
          • 1970-01-01
          • 2013-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-04
          • 1970-01-01
          相关资源
          最近更新 更多