编辑web.config会怎样?


79

我需要在实时Sharepoint环境上编辑web.config文件,但是我不确定如果这样做(我想输出自定义错误)会发生什么。

这会导致IIS6工作进程回收吗?

活动用户会因此而失去会话状态吗?

还是可以安全地编辑文件?


您可以将会话定义为放置在远程计算机上,因此应用程序重置不会导致会话丢失
Kamarey 2010年

Answers:


78

应用程序池将重新启动,会话状态将丢失。想象每个ASP.NET应用程序(在IIS中定义)都是桌面上的程序。保存web.config将执行类似于关闭程序然后重新打开的操作。


10
不确定IIS6,但是在IIS7和IIS8中,这是默认行为,尽管您可以通过“应用程序池”>“高级选项”>“回收”>“禁用对配置更改的回收= = true”进行更改,例如,这对生产环境很有帮助,管理员可以进行更改,直到下一次回收时才生效。我相信,借助Sharepoint,可以安排更改的时间表,以便在特定时间应用更改。
没必要,2014年

3
@nothingisnecessary但是,设置Application Pools > Advanced Options > Recycling > Disable recycling 本身会导致应用程序池回收吗?乌龟一直走下去吗?
D'Arcy Rittich

1
嗨@DanGoldstein。您提到“类似”来关闭程序并重新打开。静态呢?是否可以确保通过web.config编辑清除静态状态?原因是我在静态变量中缓存了一些web.config内容。
Dirk Boer

老实说,我已不再是一个很好的信息来源。当我回答时,我全职使用IIS和ASP.Net。这些天我只是一个业余爱好者软件开发人员。
丹·戈德斯坦

@DirkBoer我在这里的全部原因是为您的问题找到确定的答案。以我的经验,编辑web.config不会影响静态属性。
Alex Dresko '16


9

同样,如果将会话状态配置为进程外(数据库或服务),则回收应用程序池将不会丢失任何会话状态。对于Sharepoint来说,就像对原始ASP.Net一样。


2

当您编辑web.config时,它将重新启动该Web应用程序的AppDomain(NOT AppPool),并清除所有占用的资源和内存。因此,在该应用程序池下运行的其他Web应用程序将不会受到影响。此外,它将清除会话(进行中)和内存缓存。


1

正如某些人已经提到的那样:IIS中站点的应用程序池将重新启动(这通常需要几秒钟)。结果,下一个页面请求将变慢(因为不再缓存任何内容)。用户的会话状态也会丢失;默认情况下,不使用处于WSS会话状态的BUT,而在MOSS中,InfoPath Form Services使用它。因此,可能没有与丢失会话状态相关的大问题。

另一方面; 为克服这些问题:通常要做的是创建一个SharePoint解决方案(WSP),该解决方案将部署并启动计时器作业,以从代码(使用对象模型的SPWebConfigModification类)对web.config进行更改。令人高兴的是,您可以安排更改的执行时间,因此您的用户不会注意到它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.