Я новичок в sharepoint, я использую sharepoint онлайн, и я пишу код, чтобы просто печатать названия сайтов и дату создания. Вот мой код:SharePointOnlineCredentials бросает System.Runtime.Interopservices.COMException в консольном приложении
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;
using System.Security;
namespace SharepointAccessList
{
class Program
{
static void Main(string[] args)
{
using (ClientContext clientContext = new ClientContext("https://{sitename}.sharepoint.com//"))
{
SecureString password = new SecureString();
foreach (char c in "{mypassword}".ToCharArray()) password.AppendChar(c);
clientContext.Credentials = new SharePointOnlineCredentials("{myusername}", password);
Web oWebsite = clientContext.Web;
clientContext.Load(oWebsite);
clientContext.ExecuteQuery();
Console.WriteLine("Title: {0} Created: {1}", oWebsite.Title, oWebsite.Created);
}
}
}
}
Сначала я не имел DLL файлы Microsoft.Sharepoint.client.dll и Microsoft.Sharepoint.client.runtime.dll поэтому я установил Sharepoint Client SDK от Microsoft, и я получил DLL-файлы в моих файлах C: \ Program Files \ Common Files \ Microsoft Shared \ Web Server Extensions \ 15 \ ISAPI.
на выполнение кода я получаю исключение на следующей строке:
clientContext.Credentials = new SharePointOnlineCredentials("{myusername}", password);
Исключение:
System.Runtime.InteropServices.COMException { "Разрушительный сбой (Исключение из HRESULT: 0x8000FFFF (E_UNEXPECTED)) "}
Трассировка стека:
at Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.EnsureInited()
at Microsoft.SharePoint.Client.Idcrl.ManagedIdcrl.LogonIdentity(String username, SecureString password)
at Microsoft.SharePoint.Client.SharePointOnlineCredentials..ctor(String username, SecureString password)
at SharepointAccessList.Program.Main(String[] args) in c:\Users\Fortune4\Documents\Visual Studio 2012\Projects\SharepointAccessList2\SharepointAccessList2\Program.cs:line 21
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
Для разъяснения, я поступил правильные учетные данные, и нет ничего плохого в коде, так как выше тот же код работает отлично на другой системе, которая имеет Windows 8 32 бит ОС и Visual Studio 2013.
Он не работает на моих других 2 системах, работающих под управлением Windows 7 и 8, как на 64 бит. это имеет какое-либо отношение к Windows? Извините за длинный пост, но были похожие вопросы о stackoverflow, на котором я не мог найти свой ответ, поэтому я хотел сузить свою проблему.
Работает ли это ?: clientContext.Credentials = новый NetworkCredential (myusername, password); –
nope Я попробовал этот метод перед использованием SharepointOnlineCredentials, но сервер выдает 403 запрещенную ошибку во время выполнения. –