Sharepoint 从SPItemEventProperties打开上下文SPSite时出现问题
在下面的代码中Sharepoint 从SPItemEventProperties打开上下文SPSite时出现问题,sharepoint,wss-3.0,Sharepoint,Wss 3.0,在下面的代码中 // class overrides SPItemEventreceiver public override void ItemAdding(SPItemEventProperties properties) { using (var site = new SPSite(properties.SiteId)) //SiteId is GUID <<corrected { ... } } 解决此问题的一种方法是硬编码(或配置)备
// class overrides SPItemEventreceiver
public override void ItemAdding(SPItemEventProperties properties)
{
using (var site = new SPSite(properties.SiteId)) //SiteId is GUID <<corrected
{
...
}
}
解决此问题的一种方法是硬编码(或配置)备用访问映射中指定的URL。将正确的URL放入备用访问映射中最终是正确的解决方案,但如果可能,我需要一个不需要配置的解决方案。SiteId不应该是整数-SPSite-ctor只接受URL或GUID。考虑到它是一个GUID,我不知道AAM在这里是如何发挥作用的。另一种方法可能是使用:
properties.OpenWeb().Site
此外,由于您处于同步事件处理程序中,您应该可以访问SPContext.Current.Site(除非您在文档库中捕获事件-sharepoint长期存在的错误意味着doclibs-shitty的同步事件中没有上下文)
-Oisin站点ID不应该是整数-SPSite-ctor只接受URL或GUID。考虑到它是一个GUID,我不知道AAM在这里是如何发挥作用的。另一种方法可能是使用:
properties.OpenWeb().Site
此外,由于您处于同步事件处理程序中,您应该可以访问SPContext.Current.Site(除非您在文档库中捕获事件-sharepoint长期存在的错误意味着doclibs-shitty的同步事件中没有上下文)
-最终答案是正确的。从SPItemEventProperties打开网站或web的其他方法根本不起作用。。i、 e.properties.OpenWeb()和新的SPSite(properties.SiteId)。我没有尝试访问SPContext,也许这会奏效,但替代的访问方法已经纠正,打开站点的标准方法也在起作用。谢谢你的意见。最终的答案是正确的。从SPItemEventProperties打开网站或web的其他方法根本不起作用。。i、 e.properties.OpenWeb()和新的SPSite(properties.SiteId)。我没有尝试访问SPContext,也许这会奏效,但替代的访问方法已经纠正,打开站点的标准方法也在起作用。谢谢你的意见。