使用多个Web配置C#

使用多个Web配置C#,c#,C#,我有两个项目,每个项目都有一个WebConfig文件,我想从一个地方编辑这两个WebConfig文件,我尝试这样做: string configPath = "/WebSite Name"; Configuration confUI = WebConfigurationManager.OpenWebConfiguration("~"); Configuration confProtocol = WebConfigurationManager.OpenWebConfigur

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

    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();
    }
我也尝试

    Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath,"webSiteName");
confProtocol设置为空的问题


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

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

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

  Configuration confProtocol  = Configuration.OpenWebConfiguration(null);
如果它们位于不同的主机中,则需要指定主机

Configuration confProtocol = WebConfigurationManager.OpenWebConfiguration(configPath,"Protocol Web Site");                

//您的代码很好,但需要稍加修改

string appName = Environment.GetCommandLineArgs()[2];
//这将返回当前站点的虚拟路径 例如:“e:\Code\Website” //删除最后一个网站并添加第二个网站

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();
    }

感谢重播如何设置“configPath”?两个站点是否位于同一个站点中?