asp.net操作IIS主机头的问题总结
今天发现一个怪怪的问题,在程序自动操作IIS主机头的问题上,在本地测试时没有任何问题,新增,删除主机头都正常。但传到服务器上时就有问题了,在新增主机头时没问题,删除主机头时就出现了这样的提示:拒绝访问:Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
查了很多资料都没有解决
总结一下解决方式:
1、为IIS权限里新增IUSE_机器名,给它读写的权限,无效!
2、为IIS权限里新增everyone、aspnet增加到管理员组,没有用!
3、在webconfig里面新增<identity impersonate="true" userName="administrator" password="123456" />,没有任何效果!
4、ActiveDirectory权限修改
以上方式都没有任何作用,在用.net删除主机头时照样提示:拒绝访问:Exception from HRESULT: 0x80070005(E_ACCESSDENIED))
终级解决方法出来了:--------------------
新建一个应用程序池,然后把程序池的标识安全帐户改为:本地系统。如图所示
此时会提示如果这样修改会降低系统安全。直接点是就行了。
然后把你的站点的应用程序池改为上面这个新建的程序池即可!
其实虽然问题解决了,我还没有搞明白这其中的原理。因为应用程序池的标识帐户是有三个,网络服务,本地服务,本地系统。除了本地系统外,其它二个帐户都是权限比较低的用户。
为什么网络对IIS的操作需要改为本地系统?这样修改之后对服务器安全会有什么隐患?如果不这样修改是不是还有其它的解决方案?
请高手帮我解答一下这其中的原因。谢谢。