Ошибка SharePoint 2010 0x80010102 при использовании Microsoft.SharePoint.Linq.DataContext - PullRequest
0 голосов
/ 29 января 2019

У меня есть старый проект Sharepoint 2010, в котором используются объекты Microsoft.SharePoint.Linq.DataContext, созданные с помощью инструмента SPMetal.

Недавно при доступе к объектам в DataContext я вижу следующую ошибку.Ошибка не согласована и возникает редко

Произошла неизвестная ошибка SPRequest.Дополнительная информация: 0x80010102 0x80010102

ошибка имеет следующее определение: «Попытка делать вызовы более чем одному потоку в однопоточном режиме»

Это произошло в нескольких областях кода, все из которых имеют общий доступэкземпляр Datacontext.

Пример кода работает большую часть времени и является наиболее простым примером, который я могу найти.Кто-нибудь знает причину этой проблемы


 var ethnicity = from d in 
                ContextFactory.Instance.Ethnicities.OfType<Ethnicity>()
                select new EthnicityDTO
                {
                    ID = d.Id,
                    Title = d.Title,
                    TitleWelsh = d.TitleWelsh,
                    EthnicGroup = d.EthnicGroupDTO
                };



public class ContextFactory
    {
        private static NightOutEntityDataContext _instance;
        private static object syncRoot = new Object();

        public static NightOutEntityDataContext Instance
        {
            get
            {
                if (_instance == null)
                {
                    lock (syncRoot)
                    {
                        if (_instance == null)
                            _instance = new 
                         NightOutEntityDataContext(EntityUtils.SiteUrl);
                    }
                }

                return _instance;
            }
        }

Где NightOutEntityDataContext - класс, автоматически сгенерированный через SPMetal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...