一) 以前残留的虚拟目录的残留多余文件导致系统不能正常运行
如果以前安装过dp2bbs,但是因为卸载过程出现问题,无法卸载,只好利用regedit强行删除和安装有关的注册表事项,才能进行新的安装,这种情况下,请注意原来的虚拟目录中还有残留的程序和数据文件。
如果要对这样的残留目录进行覆盖、升级安装,需要注意,在安装前,手动将虚拟目录中除了start.xml和bbs.xml(可能会不存在)以外的文件全部删除,然后手动删除bin和app_code目录中的全部文件。其它目录和文件不要删除,因为有原先的数据目录和文件,需要保留,并且安装程序可以自动识别它们,给与适当的升级和配置。
如果尚未做以上预备工作就直接安装了新版本,但是发现启动后不能正常运行,可以卸载一次,然后安装上面介绍的步骤清除多余的文件,再重新安装一次,重启一下IIS,系统就会正常了。
二) 在Windows 2003 IIS 6.0下出现挂起的问题
主要是由于IIS 6.0引入了Application Pool,并采用了一种overlapped recycle技术所引起的。dp2bbs的应用,本来只能启动一个(在 IIS 5.0下),但是IIS 6.0的overlapped recycle技术,会导致先后两个进程出现一段时间的重叠,这会导致dp2bbs中本来一些被应用独占打开的文件,变成共享打开了,会出现故障。为了避免这个问题,需要为dp2bbs指派一个单独的application pool,并且把overlapped recycle特性禁止掉。
用以下方法可以给dp2bbs应用指派专门的application pool:
1) 打开IIS(MMC)管理界面,找到“应用程序池”,用右鼠标键盘点出popup菜单,选择“新建/应用程序池”,然后把新的应用程序池命名为“dp2bbs”。
2) 找到虚拟目录dp2bbs,然后用右鼠标键出现的popup菜单选“属性”,将“虚拟目录”tab中的“应用程序池”选为刚才新创建的dp2bbs
可以用以下两种方式尝试禁止Application Pool的overlapped recycle特性。
a) 通过cscript修改Application Pool的DisallowOverlappingRotation属性为true
步骤如下:
1) 打开DOS prompt,进入所在机器的cd inetpub/adminscripts目录
2) 执行 cscript adsutil.vbs set w3svc/AppPools/dp2bbs/DisallowOverlappingRotation true
b) 通过IIS的metabase.xml直接修改
步骤如下:
1) 先down掉IIS。命令行可用iisreset /stop
2) 进入windows/system32/inetsrv目录,然后用记事本打开metabase.xml文件,找到Application Pool名字下所属的那个
DisallowOverlappingRotation参数,修改其值为"TRUE"即可(注意大小写是敏感的)。
看起来片断应该是这个样子:
...
<IIsApplicationPool Location ="/LM/W3SVC/AppPools/dp2bbs"
AppPoolAutoStart="TRUE"
DisallowOverlappingRotation="TRUE"
>
</IIsApplicationPool>
...
3)重新启动IIS。命令行可用iisreset /start
注:如果IIS 6.0本身是出于metabase Edit-While-Running状态,就不必像上面那么繁琐地停了IIS、修改、重启动IIS,而是可以直接打开metabase.xml修改后保存,所改变的参数自动发生作用。
要让IIS 6.0进入所谓Edit-While-Running状态,可以参考这篇文字:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/83b35271-c93c-49f4-b923-7fdca6fae1cf.mspx?mfr=true
摘要如下:
To enable metabase edit-while-running from the command line
1. From the Start menu, click Run.
2. In the Open box, type cmd, and click OK.
3. At the command prompt, type iisreset /stop, and press ENTER. Leave the command window open.
Open the MetaBase.xml file with a plain text editor. By default, the MetaBase.xml file is located in the systemroot\system32\inetsrv directory.
Important
All text within MetaBase.xml is case sensitive.
1. In the IIsComputer node, change the value of the EnableEditWhileRunning property from 0 (FALSE) to 1 (TRUE). The change should look as follows:
<IIsComputer Location ="/LM"
EnableEditWhileRunning="1"
EnableHistory="1"
MaxBandwidth="4294967295"
MaxHistoryFiles="10">
2. Save changes to the MetaBase.xml file.
3. At the command prompt, type iisreset /start, and press ENTER.