有次修改了ASPNET账户的密码,结果原本能正常访问的asp.net程序就没办法访问了,错误提示“服务器应用程序不可用”。
查看系统日志,有错误信息“未能启动 aspnet_wp.exe,原因是配置文件的 processModel 节中提供的用户名和/或密码无效。”
网上一搜,都说是修改C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config.comments”(.NET1.0修改machine.config文件),找到userName = "machine”,把它改为userName = "system"。
但我这样修改后,还是不行。将ASPNET账户的密码改为空也不行。
查看msdn上对processModel的描述(http://msdn.microsoft.com/zh-cn/library/7w2sway1(v=vs.80).aspx)
其中说到“ASPNET 帐户的密码是在安装时通过加密生成的。”
原来用来启动辅助进程的账户密码,是在创建ASPNET账户时就将ASPNET账户的密码保存起来了(不知道保存在哪),所以password属性的值默认为AutoGenerate。
当我们修改了ASPNET账户密码后,iis启动辅助进程时,用保存起来的密码来启动进程,由于密码错误,所以无法启动。
当然也可以自己设置其他账户和密码来启动辅助进程,在http://msdn.microsoft.com/zh-cn/library/7w2sway1(v=vs.80).aspx中的“在注册表中存储用户名和密码”小节有说明。
一种解决办法是删除ASPNET账户,重新安装ASP.NET(在VS命令行中执行aspnet_regiis -i),这时会重新创建一个ASPNET账户,这样密码就是正确的了,重新启动电脑后就恢复正常了。
做了一点测试,测试环境是xp和iis5.1,asp.net2.0
ASPNET账户使用安装的默认密码,配置文件中password="",正常
ASPNET账户使用安装的默认密码,配置文件中password="AutoGenerate",正常
ASPNET账户密码为"",配置文件中password="",不正常
ASPNET账户密码为"",配置文件中password="AutoGenerate",不正常