C# 以编程方式在配置文件中创建/编辑WCF节

C# 以编程方式在配置文件中创建/编辑WCF节,c#,wcf,wcf-configuration,C#,Wcf,Wcf Configuration,如何以编程方式在配置文件中创建/编辑WCF节? 我知道如何阅读。但当您尝试更改配置时,会出现以下错误: string pathToProg = @ "C: \ Proj \ WCF_Config \ ConsoleApplication1 \ bin \ Debug \Test.config"; ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap(); configFileMap.ExeConfigFilenam

如何以编程方式在配置文件中创建/编辑WCF节? 我知道如何阅读。但当您尝试更改配置时,会出现以下错误:

string pathToProg = @ "C: \ Proj \ WCF_Config \ ConsoleApplication1 \ bin \ Debug \Test.config";
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = pathToProg;

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
ClientSection clientSection = ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection;           

// Exception: "The configuration is read only."
clientSection.Endpoints.Add(new ChannelEndpointElement(new EndpointAddress(@"http://1.1.1.1:1/HL7"), "Server.Message"));
我的最终目标是通过编程从头开始创建(并编辑)带有WCF设置的配置文件。如果你知道这是怎么解决的,请告诉我。 这对于我们的维护部门是必要的,因为他们发现很难直接编辑配置文件(Ip、绑定等)

UPD. 现在特别删除了整个目录复选框“只读”

一切都没有改变

你可以在这个代码上执行吗?这很简单-您只需在配置文件部分的“system.servismodel”中添加相关数据即可

PS。我认为问题在于: ClientSection ClientSection=ConfigurationManager.GetSection(“system.serviceModel/client”)作为ClientSection; clientSection.Endpoints.IsReadOnly-返回true

我的决定根本是错误的。该集合原则上不可编辑

如何纠正?我希望已经有人需要以编程方式创建配置文件

若要获取资源的配置对象,您的代码必须对从中继承设置的所有配置文件具有读取权限。要更新配置文件,您的代码还必须具有配置文件及其所在目录的写入权限


您是否具有对配置文件及其所在目录的读/写权限?

您可以尝试。它似乎正是您想要的。

根据您的假设编辑了该问题(如评论中所述)。总的来说,没有什么变化。