使用SPWebConfigModification更改Sharepoint web.config

时间:2009-08-14 11:58:50

标签: c# sharepoint web-config

我编写了一个需要更改web.config

的sharepoint应用程序

我有一个应该进行所有这些配置的功能。该功能的代码如下:

SPSite site = properties.Feature.Parent as SPSite;
List<SPWebConfigModification> modifications = new List<SPWebConfigModification>();
modifications.AddRange(CustomErrorsModeConfig.Modifications);
webConfigModificationHelper.AddWebConfigModifications(site.WebApplication, modifications);

CustomErrorsModeConfig.Modifications属性包含以下代码:

public static SPWebConfigModification[] Modifications = {
new SPWebConfigModification()
{ 
Owner = WebConfigModificationOwner,
Name = "mode",
Type = SPWebConfigModification.SPWebConfigModificationType.EnsureAttribute, 
Path = "system.web/customErrors",
Sequence = 0,
Value = "Off"
}
};

然后最后是webConfigModificationHelper.AddWebConfigModifications方法:

foreach (SPWebConfigModification modification in modifications)
{
webApp.WebConfigModifications.Add(modification);
}
webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
webApp.Update();

问题是我一直收到这个错误:

Name cannot begin with the ''' character, hexadecimal value 0x27. Line 1, position 1453

在我尝试应用更改之前,这可能是web.config的问题吗?

是否可能错误地定义了SPWebConfigModification属性?

我的代码中是否存在导致此错误的故障?

可能有一些我遗失的属性(例如web.AllowUnsafeUpdates)?

某些sharepoint网站配置?

我一直试图解决这个问题一段时间没有运气:(任何想法?

3 个答案:

答案 0 :(得分:3)

我建议使用stsadmwebconfig来更改web.config文件。我已经在许多功能中实现了它,它一直很痛苦,特别是在开发时。使用此工具可以更轻松。

答案 1 :(得分:1)

之前我在文件和声明之间没有正确设置文件格式时看到了这一点。

将web.config文件打开到高级文本编辑器(Notepad ++或Visual Studio)中,并手动强制文件类型与指定的匹配。通常它将是UTF-8。

欲了解更多信息: http://www.dumpsterdoggy.com/tutorials/?xmlexception-name-cannot-begin-with

答案 2 :(得分:0)

尝试使用List模板并循环输出并使用简单的语法设置属性。这是一个在您的示例中设置属性的帖子,看看您是否可以使其工作,然后逐步建立一个更通用的解决方案,其中包含列表并迭代列表中的项目。

http://www.sharepointkings.com/2008/05/how-to-modify-webconfig-file-in.html