1

如何以编程方式在配置文件中创建/编辑 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”和相关数据。

附言。我认为问题在于:ClientSection clientSection = ConfigurationManager.GetSection("system.serviceModel/client") as ClientSection; clientSection.Endpoints.IsReadOnly - 返回 true 。

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

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

4

2 回答 2

0

您可以尝试本指南 - 以编程方式和动态编写 WCF 配置文件。它似乎正是您正在寻找的。

于 2014-05-28T06:37:28.640 回答
0

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

http://msdn.microsoft.com/en-us/library/ms134269(v=vs.110).aspx

您是否具有对配置文件和包含它的目录的读/写访问权限?

于 2014-05-27T13:31:09.290 回答