HttpCachePolicySettings 类
表示网络资源的默认 HTTP 缓存策略。
语法
class HttpCachePolicySettings : EmbeddedObject
方法
此类不包含任何方法。
属性
下表列出了 HttpCachePolicySettings
类公开的属性。
名称 | 描述 |
---|---|
MaximumAge |
一个读/写 datetime 值,该值指定从缓存返回的资源允许的最大期限。 默认值为 infinite。如果资源的缓存副本早于指定的时间值,则必须通过将缓存的资源与服务器上的资源进行比较来重新验证资源。 |
MaximumStale |
一个读/写 datetime 值,该值指定在内容过期后可以使用资源缓存副本的时间。 默认值为 0。 |
MinimumFresh |
一个读/写 datetime 值,该值指定在内容过期前可以使用资源缓存副本的时间。 默认值为 0。 |
PolicyLevel |
一个读/写 sint32 值,该值指定本地计算机的 HTTP 缓存行为。 后文的“备注”部分列出了可能的值。 |
子类
此类不包含子类。
注解
此类的实例包含在 RequestCachingSection 类的 DefaultHttpCachePolicy
属性中。
下表列出了 PolicyLevel
属性的可能值。 默认值为 0 (Default
)。
值 | 关键字 | 说明 |
---|---|---|
0 | Default |
通过使用资源的缓存副本或通过将资源请求发送到服务器来满足资源请求。 采取的操作取决于当前的缓存策略和缓存内容的生存期。 这是大多数应用程序应使用的缓存级别。 |
1 | BypassCache |
使用服务器满足请求。 在客户端和服务器之间没有项从缓存中取出、添加到缓存中或从缓存中移除。 这是 .NET Framework 附带的计算机配置文件中指定的默认缓存行为。 |
2 | CacheOnly |
使用本地缓存资源满足请求;不发送对不在缓存中的项的请求。 当指定此缓存策略级别时,如果项不在客户端缓存中,则引发 WebException 异常。 |
3 | CacheIfAvailable |
如果缓存中的资源可用,则从缓存满足资源请求;否则,将资源请求发送到服务器。 如果请求的项在本地缓存中不可用,但在客户端和服务器之间的缓存中可用,则中间缓存将会满足请求。 |
4 | Revalidate |
如果时间戳与服务器上的资源的时间戳相同,则使用资源的缓存副本满足请求;否则从服务器下载资源,将资源展示给调用方,然后再存储在缓存中。 |
5 | Reload |
使用服务器满足请求。 响应可能保存在缓存中,具体取决于 no-cache 缓存控制指令的设置以及 HTTP 缓存协议中的 Pragma: no-cache 标头。 |
6 | NoCacheNoStore |
从不通过使用缓存中的资源来满足请求,也不缓存资源。 如果资源在本地缓存中,则会移除该资源。 此策略级别指示中间缓存应移除资源。 在 HTTP 缓存协议中,这是通过 no-cache 缓存控制指令实现的。 |
7 | CacheOrNextCacheOnly |
从本地计算机的缓存或局域网上的远程缓存满足资源请求。 如果无法满足请求,则引发 WebException 异常。 在 HTTP 缓存协议中,这是通过 only-if-cached 缓存控制指令实现的。 |
8 | Refresh |
通过使用服务器或本地缓存以外的缓存来满足请求。 在中间缓存满足请求之前,该缓存必须通过服务器重新验证其缓存条目。 在 HTTP 缓存协议中,这是通过 max-age = 0 缓存控制指令和 Pragma:``no-cache 标头实现的。 |
示例
下面的代码示例指定了 http 缓存策略,设置了 MinimumFresh
、 MaximumStale
和 MaximumAge
属性的值。
' Connect to the WMI WebAdministration namespace.
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")
' Get the RequestCachingSection.
Set oSection = oWebAdmin.Get("RequestCachingSection.Path=" & _
"'MACHINE/WEBROOT/APPHOST',Location=''")
' Display the class name of the section.
WScript.Echo "[ " & oSection.Path_.Class & " ]"
' Display the initial values for the DefaultHttpCachePolicy property.
Call DisplayValues("Initial Values", oSection.DefaultHttpCachePolicy)
' Set the http cache policy to use the default.
oSection.DefaultHttpCachePolicy.PolicyLevel = 0
' Set the MinimumFresh property to 30 minutes.
oSection.DefaultHttpCachePolicy.MinimumFresh = "00000000003000.000000:000"
' Set the MaximumStale property to 10 minutes.
oSection.DefaultHttpCachePolicy.MaximumStale = "00000000001000.000000:000"
' Set the MaximumAge property to 1 hour.
oSection.DefaultHttpCachePolicy.MaximumAge = "00000000010000.000000:000"
' Save the values to configuration.
oSection.Put_
' Refresh the oSection object variable with the new values.
oSection.Refresh_
' Show the changed values.
Call DisplayValues("New Values", oSection.DefaultHttpCachePolicy)
' ==== DisplayValues helper function. ====
Function DisplayValues(HeadingText, oObject)
WScript.Echo
WScript.Echo String(Len(HeadingText), "=")
WScript.Echo HeadingText
WScript.Echo String(Len(HeadingText), "=")
For Each Prop In oObject.Properties_
WScript.Echo Prop.Name & ": " & Prop.Value
Next
End Function
继承层次结构
HttpCachePolicySettings
要求
类型 | 描述 |
---|---|
客户端 | - IIS 7.0(在 Windows Vista 上) - IIS 7.5(在 Windows 7 上) - IIS 8.0(在 Windows 8 上) - IIS 10.0(在 Windows 10 上) |
服务器 | - IIS 7.0(在 Windows Server 2008 上) - IIS 7.5(在 Windows Server 2008 R2 上) - IIS 8.0(在 Windows Server 2012 上) - IIS 8.5(在 Windows Server 2012 R2 上) - IIS 10.0(在 Windows Server 2016 上) |
产品 | - IIS 7.0、IIS 7.5、IIS 8.0、IIS 8.5、IIS 10.0 |
MOF 文件 | WebAdministration.mof |
另请参阅
EmbeddedObject 类
FtpCachePolicySettings 类
RequestCachingSection 类
CIM_DATETIME