#region 操作Wcf服务端Config文件
/// <summary>
/// 修改Config文件中wcf服务IP地址与端口
/// </summary>
/// <param name="configfilename">Config文件名称</param>
/// <param name="serverIPAddress">IP地址</param>
/// <param name="serverPort">端口</param>
public static void UpdateHttpConfig(string configfilename, string serverIPAddress, string serverPort)
{
ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = Application.StartupPath +"/"+configfilename;// "YPTServiceCheck.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
// config.ServiceBehaviorElement
ServicesSection serverSection = serviceModelSectionGroup.Services;
// BehaviorsSection behaviorSection=serviceModelSectionGroup.Behaviors;
foreach (ServiceElement item in serverSection.Services)
{
HostElement host = item.Host;
foreach (BaseAddressElement items in host.BaseAddresses)
{
items.BaseAddress = Regex.Replace(items.BaseAddress.ToString(), @"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}", serverIPAddress + ":" + serverPort);
}
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("system.serviceModel");
}
public static string ReadHttpConfig(string configfilename)
{
ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = configfilename;// "YPTServiceCheck.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
ServicesSection serverSection = serviceModelSectionGroup.Services;
string str = "";
foreach (ServiceElement item in serverSection.Services)
{
HostElement host = item.Host;
foreach (BaseAddressElement items in host.BaseAddresses)
{
Match m = Regex.Match(items.BaseAddress.ToString(), @"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}");
if (m.Success)
{
str = m.Value;
}
}
}
return str;
}
/// <summary>
/// 修改Config文件中wcf服务IP地址与端口
/// </summary>
/// <param name="configfilename">Config文件名称</param>
/// <param name="serverIPAddress">IP地址</param>
/// <param name="serverPort">端口</param>
public static void UpdateNetTcpConfig(string configfilename, string serverIPAddress, string serverPort)
{
ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = configfilename;// "YPTServiceCheck.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
ServicesSection serverSection = serviceModelSectionGroup.Services;
foreach (ServiceElement item in serverSection.Services)
{
foreach (ServiceEndpointElement items in item.Endpoints)
{
items.Address = new Uri(Regex.Replace(items.Address.ToString(), @"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}", serverIPAddress + ":" + serverPort));
}
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("system.serviceModel");
}
public static string ReadNetTcpConfig(string configfilename)
{
System.Configuration.ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = configfilename;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
ServicesSection serverSection = serviceModelSectionGroup.Services;
string str = "";
foreach (ServiceElement item in serverSection.Services)
{
foreach (ServiceEndpointElement items in item.Endpoints)
{
Match m = Regex.Match(items.Address.ToString(), @"\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}:\d{1,5}");
if (m.Success)
{
str = m.Value;
}
}
}
return str;
}
// <summary>
/// 修改Config文件中wcf服务IP地址与端口
/// </summary>
/// <param name="configfilename">Config文件名称</param>
/// <param name="serverIPAddress">IP地址</param>
/// <param name="serverPort">端口</param>
public static void UpdateConfig(string configfilename, string serverIPAddress, string serverPort)
{
ExeConfigurationFileMap file = new ExeConfigurationFileMap();
file.ExeConfigFilename = configfilename;// "YPTServiceCheck.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(file, ConfigurationUserLevel.None);
ConfigurationSectionGroup sct = config.SectionGroups["system.serviceModel"];
ServiceModelSectionGroup serviceModelSectionGroup = sct as ServiceModelSectionGroup;
ClientSection clientSection = serviceModelSectionGroup.Client;
foreach (ChannelEndpointElement item in clientSection.Endpoints)
{
string pattern = "://.*/";
string address = item.Address.ToString();
string replacement = string.Format("://{0}:{1}/", serverIPAddress, serverPort);
address = Regex.Replace(address, pattern, replacement);
item.Address = new Uri(address);
}
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("system.serviceModel");
}
#endregion
操作Wcf服务端Config文件
最新推荐文章于 2019-08-21 16:04:13 发布