我的第一个Azure网站是一个简单的测试网站,我已经有一段时间使ajax调用回服务器获取JSON数据。所有数据文件都有.json扩展名。 Azure不会“看到”这些文件。如果我将扩展名更改为.txt,则可以很好地为它们提供服务。
是否必须使用IIS来获取此.json才能看到?
答案 0 :(得分:36)
我也发现Ahmed Sabbour的博文很有帮助,但它给我带来了额外的问题。虽然当我尝试在本地运行应用程序时,该修复程序适用于Azure Web应用程序,但它死得非常可怕,到处都是HTTP 500.19。我花了一段时间来弄清楚如何解决这个问题,同时保持一个web.config。解决方案是(虽然有点软)然后首先删除fileExtension,然后将其添加回来:
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
对于我的狭隘目的,这很好,我希望这可能会节省一些时间试图解决这个问题。
答案 1 :(得分:30)
引用 Ahmed Sabbour 撰写博文http://blogs.msdn.com/b/africaapps/archive/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website.aspx,您必须执行以下操作:
&#34;如果您将.json文件上传到Windows Azure网站并尝试访问它,则会出现404 File Not Found错误,因为默认情况下未设置.json的MIME类型。这通常也适用于可能需要特定MIME类型的任何文件。
要解决此问题,请将FTP下载到您的网站并上传以下Web.config文件,该文件将设置正确的MIME类型。如果您已经有一个Web.config文件,只需将下面的内容添加到相应的部分。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
</configuration>
&#34 ;.我这样做了,404就不见了。
答案 2 :(得分:0)
您是否尝试将特定的MIME类型添加到服务器的配置文件中?
http://www.iis.net/configreference/system.webserver/staticcontent/mimemap
如果您将mime类型添加为
application/json; charset=utf
应该工作。
答案 3 :(得分:0)
Azure(至少云服务)似乎知道如何从部署的ASP.NET MVC项目中提供JSON。我的问题是在JSON文件的属性页面上的Build Action未正确设置。将Build Action更改为Content为我修复了它。