我们新手在学习SharePoint时,经常需要使用控制台应用程序调试Sharepoint,这样效率比较高。
那么要使用控制台应用程序调试Sharepoint首先机器尽量是安装了Sharepoint 2010的环境,然后创建的控制台应用程序必须是基于.NET Framework 3.5,接着将项目属性的目标平台设置为“x64”。
按照网上很多说法,这么设置之后应该就没问题了,但是我的机器就不行,相信也有不少人为这个问题而郁闷。报的异常如下:
拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
再经查找,得出解决方案出自一篇博客:http://www.cnblogs.com/yunliang1028/archive/2011/01/04/2136829.html
就是将所有对于SharePoint进行操作的程序写在如下委托里面
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//Do something
});
例如我是进行Linq to SharePoint操作:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (MyLinqProxyDataContext context = new MyLinqProxyDataContext("http://sharepointdemo:8000"))
{
项目 i = new 项目();
i.标题 = "我是在控制台创建的";
context.客户资料.InsertOnSubmit(i);
context.SubmitChanges();
var query = context.客户资料;
foreach (var item in query)
{
Console.WriteLine("标题:{0};版本{1}", item.标题, item.版本);
}
}
});
OK,至此这个拒绝访问的报错就不存在了,可以正常使用了