【问题标题】:OpenExeConfiguration Path IssueOpenExeConfiguration 路径问题
【发布时间】:2011-12-27 04:50:23
【问题描述】:

我正在尝试从服务器加载 web.config。 它位于:\server\folders\web.config

当我尝试这个时:

 ConfigurationManager.OpenExeConfiguration(@"\\server\folders\web.config");

它搜索:web.config.config 并失败。

 ConfigurationManager.OpenExeConfiguration(@"\\server\folders\web");

失败,因为没有文件夹 \server\folders\web\

所以我尝试了几件事,它似乎在检查路径指向的文件是否存在,然后它应用一个 .config 并获取配置文件。

只是为了好玩,我创建了一个 web.loaders 文件和一个 web.loaders.config 文件。与

 ConfigurationManager.OpenExeConfiguration(@"\\server\folders\web.local");

它完美地加载了 \server\folders\web.local.config,但在没有 web.local 文件的情况下会引发异常。

所以有很多方法可以加载这个小东西,但没有比使用临时 .web 文件或其他东西更好的方法吗?

【问题讨论】:

    标签: c# asp.net asp.net-mvc configuration web-config


    【解决方案1】:

    您需要先将虚拟路径映射到物理路径。

    string configPath = HttpContext.Current.Server.MapPath("~/server/folders/web.local");      
    ConfigurationManager.OpenExeConfiguration(configPath);
    

    虚拟路径开头的 ~ 指向应用程序的根目录。如果您从您的页面引用一个相关文件,您可能不想使用它。

    【讨论】:

    • 我不在 Web 应用程序或网站中,使用这种方法我什至不太确定程序是否在同一台物理机器上运行。只有我知道,它将是同一个网络,并且运行程序的用户将被允许访问路径:)
    【解决方案2】:

    ConfigurationManager.OpenExeConfiguration 用于加载可执行文件的配置,因此确实需要 .exe 文件的完整路径。配置文件预计与 .exe 位于同一目录中,并具有扩展名 .exe.config,因此它并不适合加载 ASP.NET 网站的配置。更好的选择是使用WebConfigurationManagerOpenWebConfiguration 方法如果您从站点内打开配置是可以的,因为它需要配置的虚拟路径,但是如果您从控制台应用程序之类的东西打开它,那么您需要查看OpenMappedWebConfiguration 方法。 documentation 提供了一个示例,您可以如何实现这一目标。

    Stack Overflow 上还有一个 previous question and answer 显示如何执行此操作。

    【讨论】:

    • 好的,感谢您的建议,我知道这个问题。但是有没有办法用 OpenExeConfiguration 做同样的事情?
    • @Harry OpenExeConfiguration 适合打开 .exe 文件的配置,所以不是真的。 :) 检查我添加的 Stack Overflow 链接,它提供了一种直接的方式来使用 WebConfigurationManager.OpenMappedConfiguration 方法从控制台应用程序打开 ASP.NET 网站的配置。
    • 再读一遍帖子,让自己用耳朵之间的小东西,必须说...谢谢。该解决方案有效,并且提供的链接帮助很大。也感谢所有其他人,你的哈利
    【解决方案3】:

    假设共享存在,听起来可能是权限问题。您是否尝试将 sharefolder 权限授予运行应用程序的帐户?

    【讨论】:

    • 不,这不是权限问题,文件夹和文件是可以访问的。
    • 谁可以访问?如果您无法访问该位置的配置文件,如何访问文件和文件夹?
    猜你喜欢
    • 2018-05-03
    • 2017-10-02
    • 2012-02-17
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多