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