Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取值注册表在IIS上运行时不工作,但在Visual Studio中运行时工作_C#_Asp.net_Visual Studio 2010_Visual Studio 2012_Iis - Fatal编程技术网

C# 获取值注册表在IIS上运行时不工作,但在Visual Studio中运行时工作

C# 获取值注册表在IIS上运行时不工作,但在Visual Studio中运行时工作,c#,asp.net,visual-studio-2010,visual-studio-2012,iis,C#,Asp.net,Visual Studio 2010,Visual Studio 2012,Iis,这是我从注册表获取值的代码,当我直接从VisualStudio运行时,它工作正常,但当我从IIS运行时,值始终为null RegistryKey rk = Registry.CurrentUser.OpenSubKey( @"Software\Indomaret\POS\Database", false); //writable - this will fail without proper access string sDefault = rk.G

这是我从注册表获取值的代码,当我直接从VisualStudio运行时,它工作正常,但当我从IIS运行时,值始终为null

        RegistryKey rk = Registry.CurrentUser.OpenSubKey(
   @"Software\Indomaret\POS\Database",
    false); //writable - this will fail without proper access
        string sDefault = rk.GetValue("Server").ToString();

        ASPxButton1.Text = sDefault;

从VisualStudio运行时,通常在您的帐户(通常是管理员帐户)下运行它。您将拥有对整个注册表的完全读/写访问权限。因此,您可能创建了没有任何打嗝的密钥

当您在IIS下运行时,您很可能在特定的应用程序池帐户下运行。 此帐户对注册表大多具有只读权限,但不具有写入权限。因此,您只需确保密钥存在,以便将其作为应用程序池帐户读取

为了验证,请尝试使用应用程序池帐户写入密钥。如果您没有获得访问异常,您应该能够读取它


如果没有,您需要授予写入权限(如果您的应用程序正在写入注册表项),或者确保注册表中该用户下存在该注册表项。

IIS将在服务或应用程序池帐户下运行,并且很可能没有软件\IndoMaret注册表项。如果您将应用程序池配置为使用您的帐户运行,它是否有效?@Jessehowing如何配置它我不明白抱歉,我是新手..:DSee:如何配置我不懂抱歉我是新手..:D