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();
しかし、私は
'' などのエラーを取得していますが、無効な表現です。
これはあまり詳しくはありません。何か案は?
例外が発生する行はありますか? – EvgK
アイディア - ええ、例外の行番号を確認してください。または、Visual StudioをW3WPプロセスに接続してから、再度機能を有効にしてみてください。 –
エラーは、ApplyWebConfigModifications()を使用してWeb設定の変更を適用する行にあります。 – NLV