我编写了一个需要更改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网站配置?
我一直试图解决这个问题一段时间没有运气:(任何想法?
答案 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