繁体   English   中英

使用C#(MVC)以编程方式更新web.config applicationSettings

[英]Update web.config applicationSettings programmatically with C# (MVC)

我想在运行时更新web.config applicationSettings中的Web引用Url

这是web配置应用程序设置

<applicationSettings>
<ItineraryBuilder.Properties.Settings>
  <setting name="ItineraryBuilder_SchedulesConnectionsService_SchedulesConnectionsService"
    serializeAs="String">
    <value>http://www.pathfinder-xml.com/soap/*/services/SchedulesConnections</value>
  </setting>
  <setting name="ItineraryBuilder_SalesForceService_SforceService"
    serializeAs="String">
    <value>https://login.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6</value>
  </setting>
  <setting name="ItineraryBuilder_OAGService_CBWSPublicService"
    serializeAs="String">
    <value>http://ondemand.oag.com:80/CBWebServicePublic/CBWSPubliclPort</value>
  </setting>
</ItineraryBuilder.Properties.Settings>
</applicationSettings>

这是我用来更新的代码

var configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
var section = (System.Configuration.ClientSettingsSection)configuration.GetSection("applicationSettings/ItineraryBuilder.Properties.Settings");

System.Configuration.SettingValueElement sv = new System.Configuration.SettingValueElement();
sv.Equals("https://test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6");
section.Settings.Get("ItineraryBuilder_SalesForceService_SforceService").Value = sv;
configuration.Save();

但它不会更新Value,而是从设置中删除Value标记

早些时候我试图更新Web服务URL,但没有工作所以我遵循这种方法,请指导我如何更新Web服务URL?

这就是我在做的事情

SforceService sf = new SforceService();
sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6";;

请帮忙。

不要这样做。

具体来说,人们希望您的Web应用程序根文件夹不能被应用程序池标识写入。

感谢Amiram Korach为您提供的所有帮助

在他的帮助下,我得到了我做错的事。

正如他所说,不需要更新Web配置,因为它不是一个好方法,因此上述问题的解决方案是在运行时更新Web引用,因此以下代码工作正常

SforceService sf = new SforceService();
sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6"

我做错了什么,“sf”没有传递给用于创建连接的API类。 Amiram Korach帮助我找到了这个问题。

再次感谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM