Spsecurity.runwithelevatedprivileges, работающие на Windows Server 2003/SP2007, а не на 2008/SP2010
-
16-10-2019 - |
Вопрос
У меня есть этот простой код в C# с помощью SharePoint:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPSite site = new SPSite("http://localhost:333");
});
Когда я выполняю его на Windows Server 2008 с SharePoint 2010, я получаю эту ошибку:
Получение фабрики COM Class для компонента с CLSID {BDEADF26-C265-11D0-BCED-00A0C90AB50F} не удалось из-за следующей ошибки: 80040154.
Когда я выполняю его в Windows Server 2003 с SharePoint 2007, он работает хорошо.
Есть ли проблема в Windows или SharePoint?
Как я могу избавиться от этой ошибки?
Решение
Был ли ваш код скомпилирован на 64-битный?
Другие советы
Попробуйте зарегистрировать файл owssvr.dll, расположенный в папке ISAPI под папкой 12-Hie (Moss 2007) или SharePoint Root (SharePoint 2010). Это библиотека COM, вам необходимо зарегистрироваться, используя команду «Regsvr32» «Полный путь к DLL».
Goto Your Visual Studio Sperties -> Установите цель платформы как AnyCPU для опции сборки. Это исправит проблему.
Я попробовал следующий шаг, и это сработало для меня для приведенной выше ошибки.
- Перейдите в Solution Explorer и нажмите Alt+ Enter
- Выберите любой процессор в варианте сборки и снимайте с собой написанный поле, предпочитайте 32-битный.
- Сохраните изменения и создайте свое решение.
Теперь вы должны иметь возможность запустить программу.
Надеюсь это поможет.
Для SP2010 обратитесь к Microsoft.SharePoint.dll из 14 Hive. Вы должны восстановить проект на 64 бит