在以下代码中,
// class overrides SPItemEventreceiver
public override void ItemAdding(SPItemEventProperties properties)
{
using (var site = new SPSite(properties.SiteId)) //SiteId is GUID <<corrected
{
...
}
}
抛出以下异常:
System.IO.FileNotFoundException: The Web application at http://URL could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.
解决此问题的一种方法是硬编码(或配置)备用访问映射中指定的URL。在备用访问映射中放置正确的URL最终是正确的解决方案,但如果可能,我需要一个不需要配置的解决方法。
答案 0 :(得分:3)
SiteId不应该是整数 - SPSite ctor只接受URL或Guids。鉴于它是一个GUID,我不知道AAM如何在这里发挥作用。另一种方法可能是使用:
properties.OpenWeb().Site
此外,由于您处于同步事件处理程序中,因此您应该有权访问SPContext.Current.Site(除非您在文档库中捕获事件 - 长期存在的共享点错误意味着doclibs的同步事件中没有上下文 - 糟糕的)
-Oisin