加载.json文件会生成404错误

时间:2012-09-11 22:13:54

标签: json azure

我的第一个Azure网站是一个简单的测试网站,我已经有一段时间使ajax调用回服务器获取JSON数据。所有数据文件都有.json扩展名。 Azure不会“看到”这些文件。如果我将扩展名更改为.txt,则可以很好地为它们提供服务。

是否必须使用IIS来获取此.json才能看到?

4 个答案:

答案 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为我修复了它。

相关问题