我的第一个 Azure 网站是一个简单的测试站点,我已经有一段时间了,它可以将 ajax 回调到服务器以获取 JSON 数据。所有数据文件都有 .json 扩展名。Azure 不会“看到”这些文件。如果我将扩展名更改为 .txt,它会为它们提供服务。
我是否必须使用 IIS 才能看到这个 .json?
我也发现 Ahmed Sabbour 的博客文章很有帮助,但它给我带来了额外的问题。虽然修复适用于 Azure Web 应用程序,但当我尝试在本地运行该应用程序时,它可怕地死了,到处抛出 HTTP 500.19。我花了一段时间才弄清楚如何在维护单个 web.config 的同时解决这个问题。解决方案是(尽管有点软糖)首先删除 fileExtension 然后将其重新添加:
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
出于我狭隘的目的,这很好,我希望这可以节省一些人试图解决这个问题的时间。
在他的博客文章中引用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不见了。
Azure(至少是云服务)似乎知道如何从已部署的 ASP.NET MVC 项目中提供 JSON。我的问题是 JSON 文件属性页上的构建操作设置不正确。将构建操作更改为内容为我修复了它。
您是否尝试将特定的 MIME 类型添加到服务器的配置文件中?
http://www.iis.net/configreference/system.webserver/staticcontent/mimemap
如果您添加 mime 类型,
application/json; charset=utf
那应该可以工作。