允许在Visual Studio Express 2013 for Web中加载JSON文件

Ste*_*fan 55 iis visual-studio-2013

我有一个问题,即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映射,或使用命令行工具appcmd.exe添加网站的MIME映射.要设置MIME类型,请在IIS Express安装目录中运行以下命令:appcmd set config/section:staticContent/+ [fileExtension ='string',mimeType ='string']变量fileExtension string是文件扩展名和变量mimeType字符串是文件类型描述.例如,要为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保这一点在将Web服务器添加到列表之前,需要进行MIME映射.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保此MIME映射是在将Web服务器添加到列表之前需要它.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.为扩展名为".xyz"的文件添加MIME映射:appcmd set config/section:staticContent /+[fileExtension='.xyz',mimeType='text/plain']警告:确保此MIME映射是在将Web服务器添加到列表之前需要它.配置文件(如.CONFIG)或动态脚本页(如.ASP或.ASPX)不应直接下载,而应始终通过处理程序进行处理.其他文件(如数据库文件或用于存储配置的文件,如.XML或.MDF)有时用于存储配置信息.确定客户端是否可以在启用它们之前下载这些文件类型.安装ASP.NET.检查失败的请求跟踪日志,以获取有关此错误的其他信息.欲了解更多信息,请点击此处.

详细错误信息:模块StaticFileModule通知
ExecuteRequestHandler处理程序StaticFile错误代码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类型.使用处理程序处理这些文件类型.您不应该允许直接下载动态脚本页面,数据库或配置文件.查看更多信息»

Ste*_*fan 168

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

添加以下配置后:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

它就像一个魅力.

完整安装文件示例:

<?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>
Run Code Online (Sandbox Code Playgroud)

  • 有意思,这对我不起作用.我正在使用VS 2013,IIS Express,IE 11,.NET 4.5.1. (6认同)

小智 14

最好添加删除标记,以防将来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>
Run Code Online (Sandbox Code Playgroud)


ras*_*asx 6

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

<mimeMap fileExtension=".json" mimeType="application/javascript" />
Run Code Online (Sandbox Code Playgroud)

我需要进行区分,因为我的本地(Intranet)IIS已经定义了JSON mime类型.因此,当我部署到Azure网站时,我使用此转换Web.Release.config:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/javascript" xdt:Transform="Insert" />
    </staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)


mat*_*lto 5

  • 使用管理员权限打开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']