【问题标题】:Update web.config applicationSettings programmatically with C# (MVC)使用 C# (MVC) 以编程方式更新 web.config applicationSettings
【发布时间】:2012-08-30 07:38:29
【问题描述】:

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

这是网络配置应用程序设置

<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";;

请帮忙。

【问题讨论】:

  • sv 为空。这行sv.Equals("https://test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6"); 什么也没做。
  • 那么请告诉我如何设置它?我厌倦了这部分。Settings.Get("ItineraryBuilder_SalesForceService_SforceService").Value.ValueXml.InnerText = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6";也没有用
  • @tomfanning 是对的。不要这样做,但是当您想调用 Web 服务时,请更改实例的 url。
  • 我也尝试过,但没有奏效,所以请按照此方法,请指导我如何更新 Web 服务 url?这就是我在做的 SforceService sf = new SforceService(); sf.Url = "test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6";
  • 也可以使用此代码编辑您的问题。

标签: c# asp.net-mvc-3 web-services web-config


【解决方案1】:

不要这样做。

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

【讨论】:

    【解决方案2】:

    感谢 Amiram Korach 提供的所有帮助

    在他的帮助下,我明白了我做错了什么。

    正如他所建议的,没有必要更新 web 配置,因为这不是一个好方法,因此上述问题的解决方案是在运行时更新 Web 引用,因此以下代码可以正常工作

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

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

    再次感谢。

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-21
      • 2012-02-07
      • 2016-08-12
      • 1970-01-01
      • 2015-08-10
      相关资源
      最近更新 更多