Azure 上的 URLRewrite 是否使用持久缓存?
Does URLRewrite on Azure uses persistent cache?
我已将简单重写添加到 Azure Web 应用程序
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
它工作正常,但是当我进行任何更改时,例如删除此代码段,将重定向更改为 "www.google.com",什么都没有改变(它像以前一样一直重定向到 https)!唯一有帮助的是杀死 App Service 并创建一个新的。所以看起来它确实是某种永久缓存。这是真的吗?如果是,我们如何更改行为以允许更改现有规则?
P.S。我发现了一个关于通用 IIS 的类似问题 here,但它也没有答案。
看来确实有输出缓存,可以关闭:
<system.webServer>
<caching enabled="false" enableKernelCache="false" />
</system.webServer>
请注意,这是整个应用程序的输出缓存,因此它可能会影响其他内容。在任何情况下都可以使用它然后注释掉以清除 url 重写规则的状态。
我已将简单重写添加到 Azure Web 应用程序
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
它工作正常,但是当我进行任何更改时,例如删除此代码段,将重定向更改为 "www.google.com",什么都没有改变(它像以前一样一直重定向到 https)!唯一有帮助的是杀死 App Service 并创建一个新的。所以看起来它确实是某种永久缓存。这是真的吗?如果是,我们如何更改行为以允许更改现有规则?
P.S。我发现了一个关于通用 IIS 的类似问题 here,但它也没有答案。
看来确实有输出缓存,可以关闭:
<system.webServer>
<caching enabled="false" enableKernelCache="false" />
</system.webServer>
请注意,这是整个应用程序的输出缓存,因此它可能会影响其他内容。在任何情况下都可以使用它然后注释掉以清除 url 重写规则的状态。