SharePoint、FBA中的匿名访问和SPContext问题
我们已经在根sharepoint站点下创建了一个虚拟目录。此虚拟目录承载匿名访问的Web服务。 在代码中,我们执行以下操作:SharePoint、FBA中的匿名访问和SPContext问题,sharepoint,Sharepoint,我们已经在根sharepoint站点下创建了一个虚拟目录。此虚拟目录承载匿名访问的Web服务。 在代码中,我们执行以下操作: using(SPSite site = new site(some uri)) { using(SPWeb web = site.RootWeb) { SPList list = web.Lists["SomeList"]; SPListItem item = list.GetItemById(1); // Exceptio
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之前,一切正常
任何关于为什么会发生这种情况的指针都将非常有用
亲切问候,这可能不是您问题的原因,但您的
SPWeb
不需要按照进行处理,这是Microsoft最佳实践文档的精华。相反!始终检查null并显式地处理SPSite和SPWeb被认为是一种很好的做法,即使SPSite可以为您处理SPWeb
这也不是问题的一部分:-)
在最坏的情况下,这将导致工作进程比平常更频繁地进行回收
你可以添加一些代码(整个类)吗
另外,请包括错误的完整堆栈跟踪。
(有关如何在此处启用堆栈跟踪和调试的详细信息)
另外,我认为您确定列表和项目存在并允许匿名访问
问候
Anders Rask实际上可以处理处理代码的SPWeb,如果您在RootWeb上运行,您的站点将崩溃,这不是一个好现象!安迪是对的。SPSite对象正在创建,因此应将其丢弃;另一方面,SPWeb对象(Site.RootWeb)不需要处理。using会处理SPWeb。列表和项目确实存在,匿名用户可以访问。我可以处理Web和List。但是,当我尝试打开一个列表项时…COM例外请查看此线程…面临严重问题:是-在这种情况下,SPWeb不应该被处理,因为它是由SPSite.RootWeb提供的。这可能与您的问题无关,但会导致问题。请查看此线程,面对类似问题:如果这是您问题的答案,请将其作为答案提交并接受-这将帮助其他有类似问题的人。