2013-09-03 2 views
1

У меня есть следующий код, который используется в двух проектах веб-приложений, оба из которых являются частью одного и того же решения. Эти два проекта взаимодействуют друг с другом, один содержит веб-сервис и код, который создает коллекцию Pivot Viewer (изображения CXML +), а другое представляет собой простое веб-приложение, на котором размещена страница контейнера, отображающая элемент управления Pivot Viewer.Настройка SharePointOnlineCredentials - катастрофический сбой - COMException

Эти два проекта должны взаимодействовать с сайтом SharePoint, который содержит пару списков. Списки содержат данные, используемые для сборки коллекции CXML и для доступа к элементам данных, выставленным коллекцией. В обоих проектах существует следующий код.

using SP = Microsoft.SharePoint.Client; 
///....... 

string siteURL = ConfigurationManager.AppSettings["SharePointURL"]; 
ClientContext clientContext = new ClientContext(siteURL); 
string listName = ConfigurationManager.AppSettings["ListName"]; 
SP.List downloadRequestList = clientContext.Web.Lists.GetByTitle(listName); 


string username = ConfigurationManager.AppSettings.Get("SharePointCredentialUsername"); 
string userkey = ConfigurationManager.AppSettings.Get("SharePointCredentialPassword"); 
SecureString securekey = new SecureString(); 
for (int i = 0; i < userkey.Length; i++) 
    securekey.AppendChar(userkey[i]); 

SharePointOnlineCredentials credentials = new SharePointOnlineCredentials(username, securekey);//error occurs here 
clientContext.Credentials = credentials; 

Код выполняется без проблем в одном проекте (веб-службы), другой проект (веб-приложения) бросает COMException на линии, где конкретизируется SharePointOnlineCredentials (2-й снизу в фрагменте кода выше).

Сведения об исключении:

Сообщение: { "Разрушительный сбой (Исключение из HRESULT: 0x8000FFFF (E_UNEXPECTED))"}

Источник "Microsoft.SharePoint.Client.Runtime"

HRsult/ErrorCode -2147418113

StackTrace в Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.EnsureInited() в Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.LogonIdentity (String имя пользователя, пароль) SecureString в Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor (строка имя пользователя, пароль SecureString) в PivotServer.Download.SaveDownloadListItem() в download.aspx.cs: линия 104

Я соответствовал файл web.config для обоих проектов, они содержат одни и те же элементы. Связанная нить предложила установить идентификатор пула приложений в «Local System», что не повлияло.

Заранее благодарен за любые советы, предложения, образцы образцов, которые высоко ценятся.

ответ

0

Сегодня я столкнулся с той же проблемой, это произошло на лазурной веб-странице. Что я сделал после развертывания роли веб-сайта в azures:

  1. Подключиться к серверу веб-роли с помощью rdp.
  2. Установка SharePoint Client Components SDK
  3. Go IIS Диспетчер
  4. Изменение удостоверений пула приложений для локального администратора (счет, который я создал для входа на сервер веб-роли)
+0

Это действительно не требуется, и, вероятно, это не очень хорошая идея, так как экземпляр веб-роли может быть перезагружен в любой момент, и ваши шаги с руководством не будут выполняться через пакет. Вам просто нужно изменить ваши файлы ServiceConfiguration.cscfg azure, чтобы установить роль веб-сайта с повышенными разрешениями. Кроме того, библиотеки DLL SharePoint (Microsoft.SharePoint.Client и .Runtime.dll) должны быть добавлены в качестве ссылок на ваш ролевой проект (ы) с помощью CopyLocal = true. Таким образом, вам не нужно устанавливать клиентский SDK на серверы. –

0

У меня было такое же исключение. Чтобы решить эту проблему:

Подключитесь к http://login.microsoftonline.com в IE с учетной записью, которую вы будете использовать в своем приложении (или пуле приложений) и установите сертификат со страницы.

Это решило мою проблему.

Надежда может помочь.

+0

Какой сертификат? – Aditi

0

У меня была такая же проблема, и я пробовал все вышеперечисленные вещи, не повезло. Он оказался моим антивирусом Bitdefender 2013. Когда я отключил сканер, он сработал.

0

У меня была такая же ошибка, и ни один из предыдущих ответов не разрешил это. Я перешел к приложению сайта в диспетчере IIS и установил учетные данные физического пути в разделе «Дополнительные настройки».

1

У меня возникло это сообщение об ошибке, и оказалось, что ScanSafe блокирует файлы bin, поэтому мы не смогли получить доступ к http://clientconfig.microsoftonline-p.net/ppcrlconfig600.bin, который необходим для входа в систему.

Как только мы обновили настройки, чтобы разрешить загрузку двоичных файлов, она разрешила ошибку.

0

Он был разрешен после установки параметров безопасности Интернета. Перейдите в Интернет-параметры -> Безопасность -> Интернет -> Пользовательский уровень -> Включить .Net Framework и другие несколько элементов управления activex.

Смежные вопросы