代码之家  ›  专栏  ›  技术社区  ›  oskar1983

当用户对计算机配置的访问受限时,C#.NET应用程序无法启动

  •  2
  • oskar1983  · 技术社区  · 10 年前

    我面临以下问题:

    我有一个C#.NET v4应用程序。它在大多数机器上运行良好,但我正在经历一种奇怪的行为:

    在访问受限的计算机上,我的.NET应用程序无法运行。我不需要管理员权限来安装应用程序,但它仍然失败。(不是在没有管理员权限的常规用户帐户上,而是在真正受限的计算机上,例如在公司中)

    我在日志中看到的错误如下:

    加载配置文件时出错:访问路径 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.Config' 被拒绝。

    我不明白为了避免这个错误,我需要做些什么。我使用 Properties.Settings.Default.variable -存储某些用户特定变量的机制。我也使用自定义 Properties.MySettings.Default.variable -存储临时设置的机制。我删除了这些自定义设置,但这并没有解决问题。我不知道是什么导致了这个问题。有没有办法解决这个问题,或者在仅提供对machine.config的受限访问的计算机上运行时,所有.NET应用程序都会失败?

    我还注意到,其他程序无法安装在这台机器上,例如Chrome,引发了同样的错误。

    1 回复  |  直到 10 年前
        1
  •  1
  •   BLoB    10 年前

    摘自: this post

    “根据您的描述,我认为在不评估machine.config文件的情况下运行.NET应用程序是不可能的。

    事实上,计算机配置文件machine.config包含应用于整个计算机的设置。此文件位于%runtime安装路径%\Config目录中。Machine.config包含计算机范围程序集绑定的配置设置,内置 remoting channels 、和ASP.NET。

    配置系统首先在机器配置文件中查找 appSettings Element (General Settings Schema) 以及开发人员可能定义的其他配置部分。

    有关详细信息,请参阅 Machine Configuration Files ."

    Taken from here...

    “运行时使用以下步骤解析程序集引用:

    通过检查适用的配置文件(包括应用程序配置文件、发布者策略文件和计算机配置文件)来确定正确的程序集版本。如果配置文件位于远程计算机上,则运行时必须首先找到并下载应用程序配置文件。"