2012-08-30 20 views
1

我想在運行時更新web.config中的applicationSettings程序用C#(MVC)

這裏更新Web參考網址在web.config中的applicationSettings是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";; 

請幫助。

+0

sv爲空。這行'sv.Equals(「https://test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6」);'什麼也沒做。 –

+0

那麼請你告訴我如何設置它?我厭倦了這部分。Settings.Get(「ItineraryBuilder_SalesForceService_SforceService」)。Value.ValueXml.InnerText =「https://test.salesforce.com/services/Soap/c/25.0/0DFd00000000Wa6」;沒有工作 –

+0

@tomfanning是正確的。不要這樣做,但是當您想調用Web服務時,請更改實例的URL。 –

回答

1

感謝阿米拉姆爲授予Korach你幫

在他的幫助我得到了我在做什麼錯。

由於他建議沒有必要更新的網絡配置,因爲它是不是一個好方法,並在運行時因此對於上述問題的解決方案是更新Web引用,因此下面的代碼工作正常

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

我做錯了什麼,「sf」沒有傳遞給創建連接時使用的API類。 Amiram Korach幫我找到了這個問題。

再次感謝。

2

不要這樣做。

具體而言,人們會希望您的Web應用程序根文件夾不能被應用程序池標識寫入。

相關問題