首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多个网络配置C#

使用多个网络配置C#
EN

Stack Overflow用户
提问于 2010-05-03 20:00:17
回答 3查看 1.4K关注 0票数 3

我有两个项目,每个项目都有一个WebConfig文件,我想从一个地方编辑这两个webconfig文件,并尝试这样做:

代码语言:javascript
复制
    string configPath = "/WebSite Name";
    Configuration confUI = WebConfigurationManager.OpenWebConfiguration("~");
    Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath);                
    AppSettingsSection appSettingsUI = (AppSettingsSection)confUI.GetSection("appSettings");
    AppSettingsSection appSettingsProtocol = (AppSettingsSection)confProtocol.GetSection("appSettings");

    if (appSettingsUI != null & appSettingsProtocol != null)
    {
        appSettingsUI.Settings[key].Value = value;
        appSettingsProtocol.Settings[key].Value = value;

        confUI.Save();
        confProtocol.Save();
    }

我也试着

代码语言:javascript
复制
    Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath,"webSiteName");

confProtocol设置为空的问题。

如何在UI项目中设置协议项目的WebConfig路径?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-03 21:17:13

//您的代码很好,但需要稍微修改一下

代码语言:javascript
复制
string appName = Environment.GetCommandLineArgs()[2];

//这应该返回当前站点的虚拟路径,例如:"e:\Code\ website“//删除最后一个网站并添加第二个网站

代码语言:javascript
复制
string configFile = string.Concat(appName, "web.config");
ExeConfigurationFileMap configFMap = new ExeConfigurationFileMap();
configFMap.ExeConfigFilename = configPath;
Configuration confProtocol = ConfigurationManager.OpenMappedExeConfiguration(configFMap, ConfigurationUserLevel.None);

string configPath = "/WebSite Name";
    Configuration confUI = WebConfigurationManager.OpenWebConfiguration("~");
    Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath);                
    AppSettingsSection appSettingsUI = (AppSettingsSection)confUI.GetSection("appSettings");
    AppSettingsSection appSettingsProtocol = (AppSettingsSection)confProtocol.GetSection("appSettings");

    if (appSettingsUI != null & appSettingsProtocol != null)
    {
        appSettingsUI.Settings[key].Value = value;
        appSettingsProtocol.Settings[key].Value = value;

        confUI.Save();
        confProtocol.Save();
    }
票数 0
EN

Stack Overflow用户

发布于 2010-05-03 20:11:28

嗯。我想检查"~“路径和"configPath”将是一个很好的起点。

票数 1
EN

Stack Overflow用户

发布于 2010-05-03 20:22:42

如果需要根web.config,只需将null传递给OpenWebConfiguration即可。

代码语言:javascript
复制
  Configuration confProtocol  = Configuration.OpenWebConfiguration(null);

如果它们位于不同的主机中,则需要指定主机。

代码语言:javascript
复制
Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath,"Protocol Web Site");                
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2757831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档