c# - exePath 是 ConfigurationManager.OpenExeConfiguration 中的无效异常

标签 c#

我有一个安装到 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/

相关文章:

c# - 读取本地组策略/Active Directory 设置

c# - 向按钮控件添加自定义属性 C#

c# - 如何在 C# 中将 dd/mm 转换为 Mysql 日期时间格式

c# - DataAnnotations 属性是否已缓存?如果是这样,如何在不同文化之间切换?

c# - 从 OpenFileDialog 处理多个选定的文件

c# - 将 html 保存到 csv 并使用 Excel 打开

c# - Socket C#发送和接收

c# - C#获取xml文件中重复节点的信息

c# - Web服务的自动化测试框架

c# - 创建唯一的 URL 安全哈希