1

実行時にweb.configapplicationSettingsの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();

ただし、値は更新されません。代わりに、設定から値タグが削除されます。

以前、WebサービスのURLを更新しようとしましたが、機能しなかったため、このアプローチに従います。WebサービスのURLを更新する方法を教えてください。

これは私がやっていたことです

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

助けてください。

4

2 に答える 2

2

これをしないでください。

具体的には、WebアプリケーションのルートフォルダーをアプリケーションプールIDで書き込めないようにする必要があります。

于 2012-08-30T08:13:28.787 に答える
1

助けてくれたAmiramKorachに感謝します

彼の助けを借りて、私は自分が間違っていたことを理解しました。

彼が示唆したように、Web構成を更新する必要はありません。これは適切なアプローチではないため、上記の問題の解決策は実行時にWeb参照を更新することであり、次のコードは正常に機能します。

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

私が間違っていたことは、接続の作成に使用されるAPIクラスに「sf」が渡されなかったことです。Amiram Korachは、この問題を見つけるのを手伝ってくれました。

再度、感謝します。

于 2012-08-31T04:29:32.380 に答える