昨天,发现之前安装的 .NET Framework 是英文版,想用中文版,又不想直接安语言包(我有个坏习惯,认为“中文语言包”不如“中文版”正宗),就把英文版卸载了,再安装中文版的。结果 .NET 程序再也用不起,查看事件日志发现如下错误:
大致意思是说没有目录权限,于是检查 ASPNET 这个用户的 NTFS 权限,发现没有大的问题,又对照微软的《如何创建自定义帐户来运行 ASP.NET》一文进行检查,还是没有问题。
利用 Google 搜索“aspnet_wp.exe 800705B4”,结果却令人大失所望,只有两条记录,还没有解决问题。
管理工具->本地安全策略中也是正常的,无语,于是又是重装 .NET Framework,重启 Windows,还是不行。
把用户 ASPNET 删了,.NET Framework 卸干净了,装英文版,还是不行,真是欲哭无泪。
死马当活马医,照网上的,改配置文件,不行,执行 aspnet_regiis.exe(位于类似于 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 的地方),还是不行。不过执行 aspnet_regiis.exe 时发现错误:服务器并未及时响应启动或控制请求,IIS 也被停了,只能手动启动 IIS,对照事件日志的提示,没有把精力放在这上面。
……中间辛酸无数……
把 ASPNET 这个用户加入 Administrators 这个用户组,.NET 正常了,但这样做太危险了,为了弄清用户 ASPNET 是在哪个文件夹没有权限,把 ASPNET 从 Administrators 用户组中移出,并将其权限开到最大,居然没有正常!
已经凌晨一点了,只好作罢。
今天早上一起来,回忆下昨晚的找错经历,猜测不是由于用户 ASPNET 对哪个文件夹没有权限,而是对 IIS 没有权限,在 IIS 的站点属性中,把 ASPNET 这个操作员删了,重新添加,重启下 IIS,正常了。
早上脑袋确实好使些,想起昨天十个小时的找错经历,不惊万分欣慰,想想昨天,的确是因为太相信事件日志中所说的文件读取权限,把精力都放在 NTFS 上了,结果忽略了一些其它信息,到后来更是病急乱投医。
为什么把 ASPNET 这个操作员删了重新添加就正常了呢,我怀疑是密码变了的原因吧。其实昨晚也进行过该操作,但没有恢复正常,我怀疑是我没有重启 IIS 的原因,或者至少我应该等上几分钟再测试吧,Win2K 的 IIS 中改了权限设置,有时候就是不能立即表现出来。