1

我想在运行时更新 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();

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

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

这就是我正在做的

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

请帮忙。

4

2 回答 2

2

不要这样做。

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

于 2012-08-30T08:13:28.787 回答
1

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

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

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

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

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

再次感谢。

于 2012-08-31T04:29:32.380 回答