【发布时间】:2018-07-03 13:16:41
【问题描述】:
我正在尝试运行一些 Azure 批处理作业,当我从 Azure 服务收到 403 Forbidden 时,我将运行到最后。谷歌搜索后,我发现this article 这意味着该问题与客户端的凭据缓存有关,并通过修改配置文件提供了解决方案,如下所示:
<system.net>
<requestCaching defaultPolicyLevel="NoCacheNoStore"/>
问题是,这是一个 .NET Core 控制台应用程序,不存在这样的配置文件。
与上述 .NET Framework 4.x 解决方案相比,如何禁用 .NET Core 控制台项目的请求缓存?
【问题讨论】:
-
.NET Core 默认使用 Windows 上的 WinHTTP HTTP 堆栈实现。而且 WinHTTP 没有 HTTP 缓存机制。请参阅 .NET Core Github 上的 How do I utilize HTTP caching with WinHttpHandler and HttpClient? 问题。可能您需要调试您的应用程序以找出导致问题的请求以及原因。您可以使用像Fiddler 这样的调试代理。为了绕过中间代理缓存,您可以尝试将
Cache-Control: no-cache, no-store, max-age=0HTTP 标头添加到请求中。
标签: c# console .net-core browser-cache