SharePoint 2013 Не може да зареди потребителски профили. HttpContext е в сборка, към която няма препратка

Опитвам се да създам част от код, който ще попълни списъкен обект с всички потребители в рамките на услугата за потребителски профил на SharePoint.

Добавих препратки за Microsoft.SharePoint, Microsoft.Office.Server.UserProfiles и имам следния блок код:

using Microsoft.SharePoint;
using Microsoft.Office.Server.UserProfiles;
using System.Web;

namespace code.runner.intranet.Dal
{
    public class SPUsersDal : BaseDal
    {

        public List<SPUsersEntity> FetchItems(string siteName)
        {
            try
            {
                PostEvent("Attempting to load users from: " + siteName, BaseExceptionEventArgs.ExceptionLevel.Debug);

                using (var site = new SPSite(siteName))
                {
                    using (var web = site.OpenWeb())
                    {
                        PostEvent("Successfully opened: " + web.Url, BaseExceptionEventArgs.ExceptionLevel.Debug);

                        var serviceContext = SPServiceContext.GetContext(site);
                        var userProfileManager = new UserProfileManager(serviceContext);

                        foreach (UserProfile userProfile in userProfileManager)
                        {
                            // ...your code
                        }
                    }

Въпреки това следните редове:

var serviceContext = SPServiceContext.GetContext(site);
var userProfileManager = new UserProfileManager(serviceContext);

Има грешка със съобщението:

Типът "HttpContext" е дефиниран в сборка, която не е препратена. Трябва да добавите препратка към сборката System.Web"

Тъй като вече имам препратка към System.Web, не съм сигурен защо получавам това. Също така не можах да накарам примера на Microsoft да работи (виж тук: https://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofile.aspx), получавайки същата грешка на същите обекти.

какво ми липсва


person Michael A    schedule 13.05.2015    source източник
comment
@AlexeiLevenkov Къде мога да ги намеря за зареждане?   -  person Michael A    schedule 13.05.2015
comment
@AlexeiLevenkov Това го реши. Можете ли да добавите този отговор, за да мога да приема вместо вас?   -  person Michael A    schedule 13.05.2015
comment
Добавих отговора.   -  person Alexei Levenkov    schedule 13.05.2015


Отговори (1)


Има добър шанс сглобки на SharePoint, които използвате, изградени срещу сглобки .Net 2.0/3.5 и препращате към сглобки .Net 4.x (или по друг начин).

Ако последната версия на Framework (4.x) не е изискване, превключването на проекта към по-стара версия може да бъде решение.

За да направите това, променете „Целева версия“ в свойствата на проекта на 3.5 от 4.x и проверете дали използвате правилния x86/x64 вариант.

Забележка: Вярвам, че SharePoint 2013 трябва да използва 4.x версия на Framework - уверете се, че имате съвпадащи модули и целева версия във вашия проект. Вижте подобен въпрос за подробности - Препратка към Microsoft.SharePoint.dll.

person Alexei Levenkov    schedule 13.05.2015