出现一个奇怪的问题:有段代码是写注册表的,当用VS2005   运行时一切正常,但是在iis中运行时就出现错误,以下为写注册表的代码:
     public void WriteReg(string key, string value)
        {
            try
            {
                RegistryKey rootKey = Registry.LocalMachine.CreateSubKey(regSubKey);
                rootKey.SetValue(key, value);
                rootKey.Close();
            }
            catch (Exception)
            {
                throw;
            }
        }
在iis中运行时,出现下面的错误:
Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Uni\Register' is denied. 谢谢!

解决方案 »

  1.   

    因为你的IIS运行的账户是权限最低的guest账户,除非你把它隶属的组修改成Admin组才行。
    如果guest账户都可以操作注册表,那还谈什么安全?
      

  2.   

    这个比较正常,用VS2005时,是以你登录用户运行的,一般是管理员用户,所以有权限而IIS里面不用的IIS相关用户,没有权限试想,如果可以随便修改的话,那虚拟主机不完了吗
      

  3.   

    ASP_NET用户的权限不足。不过为什么要让这个用户访问注册表呢,写配置文件不行吗?
      

  4.   

    而且我是直接在IIS服务器上运行这段程序的
      

  5.   

    其实我已经设置了运行该段程序的页面只能在IIS服务器上运行的。
      

  6.   

    ASP.NET进程所属用户没有操作注册表的权限
      

  7.   

    一般客户端机器应该不允许 web序访问本地注册表的,最好是有一个客户端程序.或
    <identity   impersonate="true">   
    http://support.microsoft.com/?kbid=306158