gpt4 book ai didi

c# - 如何启用 ASP.NET 对注册表项 'HKEY_CURRENT_USER\Software\myAppKey\subdir' 的写访问权限?

转载 作者:行者123 更新时间:2023-12-03 11:05:28 25 4
gpt4 key购买 nike

在我的 ASP.NET Web 应用程序中 My.Computer.Registry.SetValue(Key_Name, Value_Name, Metric) 导致“访问注册表项被拒绝”错误。
应用程序在 Azure Windows Server 2012 VM 上运行。
但是,我的 .NET Windows 应用程序也在同一 VM 上运行,可以正常写入注册表。

我试过设置 regedit > the key: toeveryone=full control,仍然被拒绝。

我在同一台计算机上的 .NET Windows 应用程序(Azure Windows Server 2012 R2)写入注册表项“HKEY_CURRENT_USER\Software\”和 SOFTWARE_PROGRAM_NAME _
& "\Metrics\"& Key_Name 没有问题。

这是导致问题的 ASP.NET 代码......

' Set the key address within the System Registry:
Key_Name = "HKEY_CURRENT_USER\Software\" & SOFTWARE_PROGRAM_NAME _
& "\Metrics\" & Key_Name

Metric = My.Computer.Registry.GetValue(Key_Name, Value_Name, 0) ' read present value
if metric_function = 1
metric = 0
else if metric_function = 2
Metric = metric_value
else
Metric += 1 ' increment it
End If
My.Computer.Registry.SetValue(Key_Name, Value_Name, Metric) ' store new value

这是我浏览 ASP.NET WEB 时的错误.....
Server Error in '/' Application.

Access to the registry key 'HKEY_CURRENT_USER\Software\myApp\Metrics\WEB Communication' is denied.
Exception Details: System.UnauthorizedAccessException: Access to the registry key 'HKEY_CURRENT_USER\Software\Pray\Metrics\WEB Communication' is denied.
Source Error:


Line 152: Metric += 1 ' increment it
Line 153: End If
Line 154: My.Computer.Registry.SetValue(Key_Name, Value_Name, Metric) ' store new value
Line 155:
Line 156: ' Update the metrics display in the control pane:

Source File: C:\PRIMARY\INTERNET\APPS\DEPLOYED\myApp\myApp web\App_Code\Metrics.vb Line: 154


Stack Trace:


[UnauthorizedAccessException: Access to the registry key 'HKEY_CURRENT_USER\Software\myApp\Metrics\WEB Communication' is denied.]
Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) +144
Microsoft.Win32.RegistryKey.CreateSubKeyInternal(String subkey, RegistryKeyPermissionCheck permissionCheck, Object registrySecurityObj, RegistryOptions registryOptions) +14824601
Microsoft.Win32.RegistryKey.CreateSubKey(String subkey) +25
Microsoft.Win32.Registry.SetValue(String keyName, String valueName, Object value, RegistryValueKind valueKind) +78
Microsoft.VisualBasic.MyServices.RegistryProxy.SetValue(String keyName, String valueName, Object value) +48
Metrics.inc(Object& Key_Name, Object& Value_Name, Object metric_function, Object metric_value) in C:\PRIMARY\INTERNET\APPS\DEPLOYED\myApp\myApp web\App_Code\Metrics.vb:154
Metrics.Communication(Object& Value_Name, Object reset_metric) in C:\PRIMARY\INTERNET\APPS\DEPLOYED\myApp\myApp web\App_Code\Metrics.vb:88
_Default.Page_Load(Object sender, EventArgs e) in C:\PRIMARY\INTERNET\APPS\DEPLOYED\myApp\myApp web\Default.aspx.vb:142
System.Web.UI.Control.OnLoad(EventArgs e) +103
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1381

最佳答案

您转到 IIS 池,打开高级属性。在那里,您可能会看到一些默认身份被选为池的身份。在那里,您需要设置一个有权访问文件系统和相应注册表的身份。我通常创建一个具有管理员权限和永久密码的本地用户,然后使用该本地管理员作为我的 IIS 应用程序的标识。这样我就不用担心应用程序是否需要写入文件等

关于c# - 如何启用 ASP.NET 对注册表项 'HKEY_CURRENT_USER\Software\myAppKey\subdir' 的写访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51219344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com