解决IIS7.0部署文件在 windows 2008 R2 64位C盘中无法注册问题

来源:互联网 发布:上海晓通网络 编辑:程序博客网 时间:2024/05/22 04:43

解决IIS7.0部署文件在 windows 2008 R2 64位C盘中无法注册问题

 

        问题描述:在xxx项目安装包测试过程中,发现授权注册页面,无论输入正确或者错误的验证码,点击“注册”均无反应。经与开发人员详细分析,寻找到该问题的最终原因为:安装包安装程序的路径为C盘(WINDOWS  SERVER2008 R2 64位),C盘安全级别很高,而授权注册动作需对文件夹MvcWebWebApi进行写入操作,IIS7.0内置用户NETWORK SERVICE无法对处于C盘的文件夹MvcWebWebApi执行写入操作,也就无法成功授权注册。

针对以上问题,开发人员提供了两种方案:

1IIS7.0中应用程序池使用内置账户LOCALSYSTEM

2、修改默认路径为D盘,若用户将软件安装在C盘,则安装手册中提供用户完成软件安装后,手动赋予网站Users或者Everyone或者Network Service的完全控制权限的步骤,即对文件夹MvcWebWebApi添加Network Service用户组。

综合来讲,方案1由于LOCALSYSTEM权限过高,非常容易被黑客或病毒侵入系统导致无法挽回的损失,这是万万不能采用的。而方案2固然可行,但一定程序上反映出安装包无法自动化的一面。那么,有没有一种方法,可以无需手动操作,也能对网站赋予权限呢。

C:\windows\system32有一个程序:icacls.exe,百度解释是:显示或修改自由访问控制列表 (Dacl)上指定的文件,并指定目录中的文件应用于存储的 Dacl

于是,开发人员采用批处理的方式解决了自动对网站赋予权限的问题。具体方法如下:

FileInsertLine(TARGETDIR ^ "\\Grant.bat", "\"%SystemRoot%\\System32\\icacls.exe\" \"" + TARGETDIR + "\" /T /C /Q /grant Everyone:F", 1, BEFORE);

LaunchAppAndWait(TARGETDIR ^ "\\Grant.bat", "", WAIT);

 

       该方法的成功使用,终于解决了软件安装在C盘无法注册的问题,鉴于时代的发展,越来越多的软件产品都会安装在WINDOWS  SERVER2008 R2 64位,或者WINDOWS7 /WINDOWS8操作系统中,也将可能遇到类似情况,相信此方法可以帮助到您。

 

备注:非常感谢所有提供资料的项目组成员。。

0 0
原创粉丝点击