相关疑难解决方法(0)

为什么找不到我的json文件?

我的asp.net项目中的Content文件夹中有一个json文件:

<projectName>
    \Content
        NBCCJr.json
Run Code Online (Sandbox Code Playgroud)

...以及访问它的代码:

$.getJSON('~/Content/NBCCJr.json', function (data) {
    $.each(data, function(i, dataPoint) {
        // Bla
      });
  });
)
Run Code Online (Sandbox Code Playgroud)

......但是在调用代码时没有任何反应; 浏览器控制台说:"无法加载资源:服务器响应状态为404(未找到)"

为什么没找到?是不是"tilde whack filename"文件的正确路由?

UPDATE

我也向后试了"whacks":

$.getJSON('~\Content\NBCCJr.json', function (data) {
Run Code Online (Sandbox Code Playgroud)

...并得到相同的结果(" 无法加载资源:服务器响应状态为404(未找到) ")

更新2

然后我尝试了这样一个前所未有的打击:

$.getJSON('Content/NBCCJr.json', function (data) {
Run Code Online (Sandbox Code Playgroud)

...我在控制台中收到了这个含糊不清的消息:

*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*
Run Code Online (Sandbox Code Playgroud)

所以它还没有找到并且还没有加载?

更新3

当我尝试通过更改以下内容导航到浏览器中的文件时:

http://localhost:9702/Default.cshtml
Run Code Online (Sandbox Code Playgroud)

...至:

http://localhost:9702/Content/NBCCJr.json
Run Code Online (Sandbox Code Playgroud)

我从Vint Cerf,Tim Berners-Lee和/或Al Gore那里获得了一条信息丰富的WSOD消息说:

HTTP错误404.3 - 未找到由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.

更新4

感谢JAM,它现在正在运作.

我不得不将其添加到Web.Config:

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

asp.net jquery json google-chrome-devtools

84
推荐指数
2
解决办法
7万
查看次数

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

我有一个问题,即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类型.使用处理程序处理这些文件类型.您不应该允许直接下载动态脚本页面,数据库或配置文件.查看更多信息»

iis visual-studio-2013

55
推荐指数
4
解决办法
5万
查看次数

使用位于App_Data中的静态.json文件?

在我的ASP.NET MVC 4项目中,我的.json文件App_Data夹中包含一个文件,其中包含我要加载到D3.js中的地理数据.

到目前为止,我的工作方法是让jQuery对某个Controller执行AJAX调用,返回一个JsonResult - 并且成功时,将JSON存储在一些加载到D3中的Javascript变量中.这一次,我想跳过控制器并.json直接从App_Data文件夹请求静态文件.

我尝试使用.json的相对路径var url = "@Url.Content("~/App_Data/example.json")";,但是Javascript调试器使我有很多奇怪的正则表达式错误.

我还尝试将文件放入Content文件夹以查看目录名称是否有所不同.

  • var path = "@Url.Content("~/Content/example.json")"; 结果

    NetworkError:404 Not Found - localhost:xxxxx/Content/u.json

  • var path = @Url.Content("~/Content/example.json"); 结果

    SyntaxError:无效的正则表达式标志u:var path = /Content/example.json;

  • var json = $.getJSON("../Content/example.json")似乎向正确的目录发送请求,但返回404错误.此外,使用Razor语法指向相对URL工作,但仍然是404s.
  • 将mimeMap信息添加到web.config也没有帮助.

我的问题是:是否可以使用存储在App_Data(或Content目录)中的JSON文件,使用Javascript/jQuery?在ASP.NET中,只有一种方法可以做到这一点吗?有没有更好的方法完全采取?

asp.net jquery json asp.net-mvc-4

6
推荐指数
2
解决办法
1万
查看次数

找不到 IIS Express 静态文件

首先让我说我有 Linux 背景并且在 Windows 上开发对我来说是相当新的。

我正在处理我在 Visual Studio 中打开的 ASP.NET 项目。该项目最初设置为通过 IIS 运行。VS 很有帮助地问我是否想尝试 IIS Express,我说是的。该应用程序最初有一些小问题,但那是因为代码既旧又庞大。解决这些问题后,应用程序加载正常,但任何静态文件除外。对于文件系统上实际存在的资源,我收到 404 Not Found 错误。

您在照片中看到的物理路径存在于 Web.config 文件旁边的文件夹中。我可以从作为图形目录的同级目录的 exec 目录加载 aspx 文件。图形目录是我试图在这张图片中加载的 favicon.ico 文件所在的位置。

我今天已经阅读了很多关于 IIS 和 IIS express 的文档,但他们都没有提到必须对静态文件做任何特殊的事情。也许我只是厚。如果需要我的 Web.config,请告诉我,我可以在此处附加它。

IIS Express 错误页面

编辑:

1) 在这方面取得了一些进展。在成熟的 IIS 下,我也遇到了完全相同的错误。我的静态内容不显示。

2)这是请求的web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
  </configSections>
  <!--
    For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.

    The following attributes can be set on the <httpRuntime> tag.
      <system.Web>
        <httpRuntime targetFramework="4.5" /> …
Run Code Online (Sandbox Code Playgroud)

asp.net iis iis-express

5
推荐指数
1
解决办法
3119
查看次数