我有一个安装到 C:\Windows\System32 的 Windows 服务。它有一个通常的 .config 文件,其中存储了一些应用程序设置。我有另一个应用程序将一些值写入此配置。当我运行这个应用程序时,它会在这一行抛出异常
var config = ConfigurationManager.OpenExeConfiguration(serviceExePath);
异常显示:加载配置文件时发生错误:参数“exePath”无效。参数名称:exePath
当我将 windows 服务放到另一个文件夹时,一切正常!是由于某些访问冲突规则还是类似的原因?有什么方法可以为我的服务使用 System32 文件夹并打开它的配置吗?
操作系统:Windows 7 x64
最佳答案
对于文件位置来说,这是一个糟糕的选择。该目录属于 Windows,不适合您自己的应用程序。首先,您需要管理员权限才能打开该目录中的文件。如果没有 list 来触发 UAC 提示,您将无法获得它。
另一方面,该目录在 x64 版本的 Windows 上被虚拟化。尝试访问文件的 32 位应用程序将被重定向到 c:\windows\syswow64。
如果您发布堆栈跟踪,我可能会更准确。但是,不要这样做。
关于c# - exePath 是 ConfigurationManager.OpenExeConfiguration 中的无效异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283051/