sharepoint - "The specified node was not found in the web.config file"- 尝试以编程方式添加模块时出错

标签 sharepoint sharepoint-2010 web-config

我尝试从事件接收器中向 web.config 添加一个模块。为此,我使用了 SPWebConfigModification。当我更新 webApp (webApp.Update()) 时,抛出以下错误:

在 web.config 文件中找不到指定的节点“configuration/system.webserver/modules”。

但该节点肯定存在于网络配置中(并且也是一个非常常见的节点)。知道为什么会失败吗?

SPSite currentSite = GetCurrentSite(properties);
currentSite.AllowUnsafeUpdates = true;
SPWebApplication webApp = currentSite.WebApplication;

SPWebConfigModification modification = new SPWebConfigModification();
modification.Path = @"configuration/system.webServer/modules";
modification.Name = "ErrorRedirectModule";
modification.Sequence = 0;
modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
modification.Value = "<add name=\"ErrorRedirectModule2\" type=\"Tools.ErrorHttpModule, Tools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e907fc34eb70f91\" />  ";

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    webApp.WebConfigModifications.Add(modification);
    webApp.Update();
    webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
});

最佳答案

web.config修改的类型为EnsureChildNode时,Name属性应该包含一个XPath表达式,唯一标识下的节点父节点(由 Path 属性标识)以确保不会将节点的副本添加到文件中。

换句话说,Path + Name 必须将 XPath 表达式匹配到创建的节点。

modification.Path = "configuration/system.webServer/modules";
modification.Name = "add[@name='ErrorRedirectModule2']";
modification.Sequence = 0;
modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
modification.Value = "<add name='ErrorRedirectModule2' type='Tools.ErrorHttpModule, Tools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e907fc34eb70f91' />";

我不确定 '" 引号 - 即使在我下面链接的 MSDN 文章中也不一致。

更多信息:

关于sharepoint - "The specified node was not found in the web.config file"- 尝试以编程方式添加模块时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8260111/

相关文章:

c# - Web 服务中的 SPSite 抛出 401 错误

c# - 以编程方式更改 Sharepoint 2007 列表中的字段顺序

sharepoint - Sharepoint 2010-功能未出现在UI中

sharepoint - 对于 WSS 4.0/SharePoint 2010,哪些开发人员功能最让您兴奋?

asp.net - 加密网络场中的 web.config

c# - asp.net 中 Convert.ToDateTime 的问题

asp.net - 用于预览的 SharePoint 流文件

c# - 使用 lists.asmx 网络服务下载列表附件

css - 在 GridView 中卡住(锁定)列

asp.net - .Net 配置文件困惑