共享配置的脱机文件
介绍
启用共享配置后,一个常见的问题是当提供这些文件的网络共享变得不可用时会发生什么情况。 共享发生故障后,配置系统将检测更改通知(共享超时后),WAS 将尝试重新加载配置,从而导致失败。 此时,Web 服务器将不起作用,W3SVC 服务将无法访问配置。 为了确保 Web 服务器始终可以访问配置文件,建议使用有复制功能的分布式文件系统 (DFS) 或脱机文件。
注意
在 Windows Server 2008 R2 (Windows 7) 中,当共享发生故障时,配置系统将向 WAS 发送一条特殊通知,指出访问配置文件时出现 IO 错误。 此时,WAS 将继续使用它当前具有的配置的缓存副本。 同时,它将继续轮询配置系统,直到共享恢复正常(此时,它将重新加载配置)。 当 WAS 在缓存配置的情况下运行时,如果停止 WAS 或重新启动系统,Web 服务器将停止工作,直到共享恢复正常。
即使网络共享不可用,脱机文件功能(或称客户端缓存)也允许访问存储在网络共享上的文件。 这是一个确保配置文件始终可用的简单解决方案,建议用于共享配置文件。 但是,不建议对网站内容使用脱机文件,因为这会降低吞吐量。
问题摘要:当 IIS 7.0 或更高版本服务器配置为在共享配置模式下工作时,配置文件将存储在文件共享上。 建议使用此配置设置 Web 场。 但是,如果文件共享脱机,整个设置将失败,Web 服务器也会停止响应。 此外,当文件共享再次可用时,IIS 服务器将无法检测到它并提供以下错误消息:
HTTP 错误 500.19 - 内部服务器错误:无法访问请求的页面,因为该页面的相关配置数据无效。
在此之后,我们必须执行 IISreset 才能再次启动 Web 服务器。
更多信息
对于网站内容,建议考虑对文件服务器使用 DFS。 有关 DFS 的详细信息,请参阅分布式文件系统。
有关客户端缓存的详细信息,请转到https://www.microsoft.com/。
使用脱机文件配置共享配置
按照以下步骤设置共享配置,并启用脱机文件(客户端缓存)。
步骤 1:在 Web 服务器上,在“控制面板”中打开“脱机文件”。
步骤 2:在“脱机文件”对话框中,单击“启用脱机文件”。 暂时不要重新启动计算机。
步骤 3:通过运行以下命令确保缓存设置为只读:
REG ADD "HKLM\System\CurrentControlSet\Services\CSC\Parameters" /v ReadOnlyCache /t REG_DWORD /d 1 /f
步骤 4:重新启动 Web 服务器。
步骤 5:从 Web 服务器浏览到文件共享文件夹。 右键单击并选择“脱机时始终可用”。
步骤 6:转到控制面板 -- >“脱机文件”。 选择“计划”选项。
步骤 7:每隔 1 天或根据需要安排脱机文件同步。 这也可能只需要几分钟。 即使没有设置任何计划程序,在 applicationhost.config 文件中更改任何内容时,也会反映在 Web 服务器上。
此时,即使文件共享处于脱机状态,Web 服务器也能正常工作,而且现在不需要 IISReset。
非常感谢 Won Yoo 和 Amol Mehrotra 帮助提供此内容。