我想要做的事情相当简单,你可能认为。创建静态 json 文件,这样浏览器就可以缓存输出,你不必轮询数据库来获取大量数据。
因此我创建了一个 JSON 文件 test.json,内容如下[{"frut":1}]
(我的实际文件大小在 3mb 左右)
我去了http://domain.com/frut.json我得到了error 404
404 - 未找到文件或目录。
您正在寻找的资源可能已被删除、名称已更改或暂时不可用。
首先我很惊讶...文件就在那里,为什么不提供下载或者出现 403 禁止...
好的。Google,最后位于https://www.sencha.com/forum/showthread.php?33266-Some-Problem-with-JSON/page2#post_229858
所以我尝试了
IIS7 configuration to support JSON:
Using IIS manager: clock on IIS server (the main node on the left - where you see the machine name)
1. Add ‘json’ MIME Type
* Double click on ‘MIME Types’ icon
* Click ‘Add…’ link (under Actions section on the right side)
In ‘Add MIMI Type’ window type:
File name extension: .json
MIME type: application/x-javascript
* Click OK, You should see the .json MIME Type added to the list of the MIME Types list.
2. Add Script Map Handler for ‘json’ MIME Type
* Double click on ‘Handler Mappings’ icon
* Click on ‘Add Script Map…’ link (under Actions section on the right side)
* In ‘Add Script Map’ window type:
Request path: *.json
Executable: C:\Windows\System32\inetsrv\asp.dll
Name: JSON
* Click OK (Message box pops up with a message: Do you want to allow this ISAPI extension?...etc ) Click Yes, You should see the .json extension added to the list of the Handler Mappings list
好的。Error 500
而不是error 404
。不明白为什么...怎么回事,到底发生了什么。我检查了日志。什么都没有。只是在请求中模糊地提到了 500。就是这样。没有详细信息,没有错误日志。什么都没有。
我现在真的又开始讨厌微软了。
阅读了很多有关请求限制的内容,但事实并非如此,因为这个文件甚至没有达到 1kb,更不用说 2gb 的限制了。
使用 Google 搜索更多,但最终一无所获。
问题 如何让一个简单的 JSON 文本文件显示在 IIS 7.5 中,这样我就可以使用 ajax 请求进行请求,而不会让 IIS 因一个简单的文本文件而自我终止。
答案1
解决方案看起来很简单但几乎不可能找到从 IIS 中获得所需的行为。
解决办法基本上是,不要充当,application/x-javascript
而是充当text/json
根据以下答案IIS 无法提供某些文件扩展名
使用 IIS 管理器:单击 IIS 服务器(左侧的主节点 - 您可以在此处看到计算机名称)
- 添加
json
MIME 类型- 双击
MIME Types
图标 - 点击
Add…
链接(在右侧的操作部分下)在
Add MIME Type
窗口类型中:
文件扩展名:.json
MIME 类型:text/json
- 单击
OK
,您应该会看到.json
MIME 类型添加到 MIME 类型列表中。
- 双击
现在,当您请求该文件时,它会按照您想要的方式将其作为常规文本文件提供。