【发布时间】:2011-11-22 03:46:37
【问题描述】:
我是 SharePoint 的新手,因此我正在遵循一些 Microsoft 学习指南。一个练习是创建一个功能接收器来修改 Web.Config 文件。 我检测到该功能被激活或停用,并使用适当的标志调用以下例程。
void setProliferationFlag(bool status)
{
SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://SharePoint"));
try
{
SPWebConfigModification mySetting = null;
if (status)
{
mySetting = new SPWebConfigModification();
mySetting.Path = "configuration/appSettings";
mySetting.Name = "add [@key='preventProliferation'] [@value='1']";
mySetting.Sequence = 0;
mySetting.Owner = "Lab05Owner";
mySetting.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
mySetting.Value = "<add key='preventProliferation' value='1' />";
webApp.WebConfigModifications.Add(mySetting);
}
else
{
foreach (SPWebConfigModification modification in
webApp.WebConfigModifications)
{
if (modification.Owner == "Lab05Owner")
{
modification.Value = "<add key='preventProliferation' value='0' />";
}
}
}
webApp.Update();
webApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications();
}
catch
{
}
事件接收器工作正常。当我激活该功能时,此代码会运行,但是当它到达“webApp.Update()”行时,它会失败并出现“拒绝访问”错误。没有其他关于错误的细节。我不确定访问被拒绝的是什么。 我在我的笔记本电脑上的开发环境中运行。这是在 Window 7 上安装的 Sharepoint Server 2010。
问候蒂姆
【问题讨论】:
-
首先:获得一个不错的堆栈跟踪 --> 通过将 customerrors 设置为 `
` 将调用堆栈更改为 CallStack="true"来更改 web.config。您从哪个帐户激活该功能?更重要;此帐号有哪些权限..
标签: c# sharepoint sharepoint-2010