2014-04-23 68 views
0

節,我問編輯/刪除或添加的部分處理web.config 我希望能夠添加或刪除的ConnectionStrings節到我的web.config文件添加和刪除在web.config中

這裏是我的web.config

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
<connectionStrings /> 
</configuration> 

我用下面的代碼添加部分的ConnectionStrings

Dim doc As XmlDocument = New XmlDocument() 
Dim path As String = Server.MapPath("~/Web.Config") 
doc.Load(path) 
Dim newElem As XmlElement = doc.CreateElement("connectionStrings") 
doc.DocumentElement.AppendChild(newElem) 
doc.PreserveWhitespace = False 
Dim wrtr As XmlTextWriter = New XmlTextWriter(path, Encoding.Unicode) 
doc.WriteTo(wrtr) 
wrtr.Close() 

我試圖操縱代碼來刪除部分connectionStrings,但我無法做到這一點。我用RemoveChild()函數代替AppendChild(),但我得到像

Error 1 Value of type 'String' cannot be converted to 'System.Xml.XmlNode'. 

Object reference not set to an instance of an object. 

錯誤,你能幫助我與我的代碼刪除部分的ConnectionStrings

+1

可能重複(http://stackoverflow.com/questions/20611/removing-nodes-from-an-xmldocument) – mason

+0

不管你的問題,這是一個壞主意。當IIS應用程序的'Web.config'文件被編輯時,IIS AppPool將被回收。這會導致實際編輯配置文件的線程終止,從而終止HTTP請求,從而導致用戶體驗不佳。您不應該從應用程序本身編輯Web應用程序的Web.config文件。還有可能讓網站的用戶編輯其配置的安全隱患。 –

+0

@martin_costello非常感謝 – user3565664

回答

0

要刪除connectionstrings節點,請轉到父節點(在本例中爲configuration),然後使用RemoveChild()函數。這與AppendChild()函數相反。您需要傳入要刪除的元素。

+0

我收到此錯誤:錯誤'String'類型的值無法轉換爲'System.Xml.XmlNode'。 – user3565664

+0

現在我得到這個錯誤:對象引用未設置爲對象的實例。 – user3565664

0
Dim doc As XmlDocument = New XmlDocument() 
Dim path As String = Server.MapPath("~/Web.Config") 
doc.Load(path) 
Dim connNode As XmlNode = doc.SelectSingleNode("//connectionStrings") 
Dim myparent As XmlNode = connNode.ParentNode 
myparent.RemoveChild(connNode) 
doc.PreserveWhitespace = False 
Dim wrtr As XmlTextWriter = New XmlTextWriter(path,Encoding.Unicode) 
doc.WriteTo(wrtr) 
wrtr.Close() 
0

您直接使用'WebConfigurationManager'類從web.config中刪除特定的鍵。 見下面的代碼段,以除去「連接」字符串[從一個如下卸下節點]的

Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); 
config.AppSettings.Settings.Remove("connectionstring"); 
config.Save();