Вопрос

Я пытаюсь реализовать ihttphandler в SharePoint 2010 и для справки, я использую это: http://blogs.msdn.com/b/kaevans/Archive/2010/08/04/deploying-an-ass-net-htttphandlo-SharePoint-2010.aspx

Но я получаю SPContext.Courent - «NULL» и не может получить сайт контекста.

URL похож на:

http://spsvr/sitecoll/subsite/_layouts/myfolder/myhandler.ashx?param1=paramvalue
.

Это было полезно?

Решение

Я отвечаю на мои вопросы.
После рассмотрения @simondoy прокомментируйте, что «это странно» и поняла, что я действительно делаю ошибку, а затем осознаю ошибку.

Я допустил ошибку, я бегал с повышенным разрешением и в том, что я ссылался на SPContext.Courent.

код ошибки

public void ProcessRequest(HttpContext context)
{
    SPSecurity.RunWithElevatedPrivileges(delegate
    {
       // 'SPContext.Current' null reference error
        using (var site = new SPSite(SPContext.Current.Site.ID))
        {
            using (var web = site.OpenWeb(SPContext.Current.Web.ID))
            {
               // codes goes here
            }
        }
    });

}
.

Фиксированный код

public void ProcessRequest(HttpContext context)
{
    var curSite = SPContext.Current.Site;
    var curWeb = SPContext.Current.Web;
    SPSecurity.RunWithElevatedPrivileges(delegate
    {
        using (var site = new SPSite(curSite.ID))             {
            using (var web = site.OpenWeb(curWeb.ID))
            {
                // code goes here
            }
        }
    });

}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top