我需要在实时 Sharepoint 环境中编辑 web.config 文件,但我不确定如果这样做会发生什么(我想输出自定义错误)。
这会导致 IIS6 工作进程回收吗?
活跃用户会因此失去他们的会话状态吗?
或者我可以安全地编辑文件吗?
我需要在实时 Sharepoint 环境中编辑 web.config 文件,但我不确定如果这样做会发生什么(我想输出自定义错误)。
这会导致 IIS6 工作进程回收吗?
活跃用户会因此失去他们的会话状态吗?
或者我可以安全地编辑文件吗?
应用程序池将重新启动,会话状态将丢失。想象每个 ASP.NET 应用程序(在 IIS 中定义)都是桌面上的一个程序。保存 web.config 将执行类似于关闭程序并重新打开它的操作。
此外,如果会话状态配置为进程外(数据库或服务),则回收应用程序池不会丢失任何会话状态。这对于 Sharepoint 和 vanilla ASP.Net 一样适用。
当您编辑 web.config 时,它将重新启动该 Web 应用程序的 AppDomain(不是 AppPool)并清除所有占用的资源和内存。因此在该 App Pool 下运行的其他 Web 应用程序不会受到影响。它还将清除会话(进程内)和内存缓存。
正如一些人已经提到的:IIS 中站点的应用程序池将重新启动(这通常需要几秒钟)。结果,下一页请求将变慢(因为不再缓存任何内容)。用户的会话状态也会丢失;但是默认情况下不使用 WSS 会话状态,在 MOSS 中它由 InfoPath Form Services 使用。因此,您可能没有与丢失会话状态相关的大问题。
另一方面; 为了克服这些问题:通常要做的是创建一个 SharePoint 解决方案 (WSP),该解决方案部署并启动一个计时器作业以从代码更改 web.config(使用对象模型的 SPWebConfigModification 类)。好处是您可以安排更改的执行,这样您的用户就不会注意到它。