我们在根共享点网站下创建了一个虚拟目录。此虚拟目录托管匿名访问的Web服务。 在代码中我们正在执行以下操作:
using(SPSite site = new site(some uri))
{
using(SPWeb web = site.RootWeb)
{
SPList list = web.Lists["SomeList"];
SPListItem item = list.GetItemById(1); // Exception Here, COM Exception
}
}
即使使用RunWithElevatedPrivileges,这也不起作用。
但是,如果将HttpContext.Current设置为null,则在创建SPSite之前,一切正常。
任何关于为什么会发生这种情况的指示都会非常有用。
亲切的问候,
答案 0 :(得分:0)
这可能不是您的问题的原因,但根据Roger Lamb here,SPWeb
不需要处理,这是微软最佳做法文档here的精华。
答案 1 :(得分:0)
恰恰相反!尽管SPSite可能会为您处理SPWeb,但始终检查null并同时处理SPSite和SPWeb是一种很好的做法。
这也不是问题的一部分:-) 最坏的情况会导致工人流程比平常更频繁地回收......
你可以添加一些代码(全班)。
还请包含错误的完整堆栈跟踪。 (详细说明如何在此处启用堆栈跟踪和调试http://blogs.importchaos.com/alonsorobles/2008/06/09/enabling-the-sharepoint-safe-mode-call-stack-disabling-custom-errors-and-enabling-compilation-debugging/)
另外我认为你确定列表和项目存在并允许匿名访问?
问候 安德斯拉斯克