2011-02-07 54 views
3

我正在使用以下代碼通過以下代碼添加幾個httpHandler(用於Telerik控件)。使用SPWebConfigModification添加HTTPHandler

  SPWebConfigModification webConfig = null; 

      webConfig = new SPWebConfigModification(); 
      webConfig.Owner = featureID; 
      webConfig.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; 
      webConfig.Path = "/configuration/system.web/httpHandlers"; 
      webConfig.Name = "add[@path='Telerik.ReportViewer.axd']"; 
      webConfig.Value = "<add verb=\"*\" path=\"Telerik.ReportViewer.axd\" type = \"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=4.2.10.1110, Culture=neutral, PublicKeyToken=a9d7983dfcc261be\" />"; 
      webApp.WebConfigModifications.Add(webConfig); 

      webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
      webApp.Update(); 

      webConfig = new SPWebConfigModification(); 
      webConfig.Owner = featureID; 
      webConfig.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; 
      webConfig.Path = "/configuration/system.web/httpHandlers"; 
      webConfig.Name = "add[@path='ChartImage.axd']"; 
      webConfig.Value = "<add path=\"ChartImage.axd\" verb=\"*\" type=\"Telerik.Web.UI.ChartHttpHandler, Telerik.Web.UI, Version=2010.2.826.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4\" validate=\"false\" />"; 
      webApp.WebConfigModifications.Add(webConfig); 

      webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
      webApp.Update(); 

      webConfig = new SPWebConfigModification(); 
      webConfig.Owner = featureID; 
      webConfig.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; 
      webConfig.Path = "/configuration/system.web/httpHandlers"; 
      webConfig.Name = "add[@path='Telerik.Web.UI.WebResource.axd']"; 
      webConfig.Value = "<add path=\"Telerik.Web.UI.WebResource.axd\" verb=\"*\" type=\"Telerik.Web.UI.WebResource, Telerik.Web.UI, Version=2010.2.826.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4\" validate=\"false\"/>"; 
      webApp.WebConfigModifications.Add(webConfig); 

      webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
      webApp.Update(); 

      webConfig = new SPWebConfigModification(); 
      webConfig.Owner = featureID; 
      webConfig.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; 
      webConfig.Path = "/configuration/system.web/httpHandlers"; 
      webConfig.Name = "remove[@path='Telerik.ReportViewer.axd']"; 
      webConfig.Value = "<add verb=\"*\" path=\"Telerik.ReportViewer.axd\" type = \"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=4.2.10.1110, Culture=neutral, PublicKeyToken=a9d7983dfcc261be\" />"; 
      webApp.WebConfigModifications.Add(webConfig); 

      webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
      webApp.Update(); 

      webConfig = new SPWebConfigModification(); 
      webConfig.Owner = featureID; 
      webConfig.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; 
      webConfig.Path = "/configuration/system.web/httpHandlers"; 
      webConfig.Name = "remove[@path='Telerik.ReportViewer.axd_*']"; 
      webConfig.Value = "<add name=\"Telerik.ReportViewer.axd_*\" path=\"Telerik.ReportViewer.axd\" verb=\"*\" type=\"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=4.2.10.1110, Culture=neutral, PublicKeyToken=a9d7983dfcc261be\" preCondition=\"integratedMode,runtimeVersionv2.0\" />"; 
      webApp.WebConfigModifications.Add(webConfig); 

      webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); 
      webApp.Update(); 

但我得到的錯誤作爲

'' 是一個無效的表達。

這不是很詳細。有任何想法嗎?

+0

異常發生在哪一行? – EvgK 2011-02-07 16:55:19

回答

0

Okie,我修好了。該錯誤出現在ApplyWebConfigModifcations()行。它拿着一些以前錯誤的web.config更改條目。調用

webApp.WebConfigModifications.Clear() 

修復了這個問題。

相關問題