42

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

我是否必须使用 IIS 才能看到这个 .json?

4

4 回答 4

47

我也发现 Ahmed Sabbour 的博客文章很有帮助,但它给我带来了额外的问题。虽然修复适用于 Azure Web 应用程序,但当我尝试在本地运行该应用程序时,它可怕地死了,到处抛出 HTTP 500.19。我花了一段时间才弄清楚如何在维护单个 web.config 的同时解决这个问题。解决方案是(尽管有点软糖)首先删除 fileExtension 然后将其重新添加:

<staticContent>
  <remove fileExtension=".json" />
  <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

出于我狭隘的目的,这很好,我希望这可以节省一些人试图解决这个问题的时间。

于 2015-04-14T16:50:11.120 回答
46

在他的博客文章中引用Ahmed Sabbour http://blogs.msdn.com/b/africaapps/archive/2013/06/07/how-to-serve-static-json-files-from-a-windows-azure-website .aspx您必须执行以下操作:

“如果您将 .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> 

“。我这样做了,404不见了。

于 2014-07-08T13:06:50.933 回答
3

Azure(至少是云服务)似乎知道如何从已部署的 ASP.NET MVC 项目中提供 JSON。我的问题是 JSON 文件属性页上的构建操作设置不正确。将构建操作更改为内容为我修复了它。

于 2015-09-29T23:42:29.960 回答
1

您是否尝试将特定的 MIME 类型添加到服务器的配置文件中?

http://www.iis.net/configreference/system.webserver/staticcontent/mimemap

如果您添加 mime 类型, application/json; charset=utf 那应该可以工作。

于 2012-09-11T22:23:20.867 回答