Azure应用程序服务-发布后未更新浏览的内容

Azure应用程序服务-发布后未更新浏览的内容,azure,asp.net-web-api2,azure-web-app-service,Azure,Asp.net Web Api2,Azure Web App Service,我们有一个Azure应用程序服务,托管一个包含静态HTML和JS内容的Web应用程序。我们发现,在重新启动Azure应用程序服务之前,我们部署到Web应用程序的新JavaScript内容不会在浏览器中更新。我们使用MSBUILD驱动的MSDeploy进行发布 我们已经通过Kudu确认Java脚本文件的新版本已经存在。正如预期的那样,文件大小和修改的日期/时间随着我们的部署而变化 但是,如果我们在浏览器中点击它们(例如),我们会看到文件内容的旧版本。这与浏览器无关,删除缓存后,在匿名模式下运行,在

我们有一个Azure应用程序服务,托管一个包含静态HTML和JS内容的Web应用程序。我们发现,在重新启动Azure应用程序服务之前,我们部署到Web应用程序的新JavaScript内容不会在浏览器中更新。我们使用MSBUILD驱动的MSDeploy进行发布

我们已经通过Kudu确认Java脚本文件的新版本已经存在。正如预期的那样,文件大小和修改的日期/时间随着我们的部署而变化

但是,如果我们在浏览器中点击它们(例如),我们会看到文件内容的旧版本。这与浏览器无关,删除缓存后,在匿名模式下运行,在F12工具中运行w/cache Disabled,始终获取旧内容

如果我们只是通过门户重新启动应用程序服务并重新浏览,我们就会得到新的内容。维奥拉,怎么了

Azure应用程序服务承载一个ASP.NET Web API应用程序,版本为4.6.1,64位,集成管道,ARR
关闭
,始终打开

WebAPI应用程序定义了一个非默认路由,用于提供静态HTML文件。该文件有一个指向静态JS文件的链接,该文件与HTML文件并排存储在同一文件夹中。我们没有JS文件的具体路径…但认为没有必要这样做

环境变量
WEBSITE\u LOCALCACHE\u ENABLED=False


非常感谢任何提示或帮助。

您是否为web应用程序中的静态内容启用了客户端缓存?如果有,可以禁用缓存:

<system.webServer>
    <staticContent>
      <clientCache  cacheControlMode="DisableCache" />
    </staticContent>
  </system.webServer>

该问题与我们项目中的某个点相对应,我们在部署期间没有正确更新.NET程序集版本。一旦我们修改代码和构建过程,在每次部署时生成新的AssemblyVersion,问题就消失了

换句话说,现在我们总是使用一个新的由4部分组成的.NET版本进行部署,我们总是会收到Java脚本文件的正确版本(当前位于Azure中)

我注意到,我们从来没有(现在仍然没有)更改index.html或JavaScript文件的名称


我们没有更改任何路由或Azure设置,只是正确地增加了版本。我没有一个精确的解释,但这是我们现在观察到的,并且是好的

有趣的是,我们的web.config中确实有一个
块,但它完全被注释掉了。默认IIS
clientCacheMode
是否已启用?请查看您的代码。如果在其他位置启用了静态缓存,并且默认情况下,IIS不启用客户端缓存。干杯。不要认为这是问题所在——没有其他配置在使用中,我们没有任何代码可以使用客户端缓存。我还注意到,这个问题是间歇性的。有时我们进行部署,但新内容是可获取的,有时则不可获取。您是否有任何CDN在这里使用?在Web.config文件中添加配置后,是否尝试重新启动WebApp?如果没有,请尝试重新启动WebApp,然后尝试上载新文件并在浏览器中访问。