我在Windows Server 2012 R2数据中心机器上的IIS上运行了一个.NET Core 2.2 API。它使用 Nuget 包 Microsoft.SharePointOnline.CSOM 中的 DLL。但是它在调用方法 ClientContext.ExecuteQueryAsync()
时会引发异常One or more errors occurred. (The process has no package identity. (Exception from HRESULT: 0x80073D54))
。
我遵循了以下指南:https://rajujoseph.com/getting-net-core-and-sharepoint-csom-play-nice/.我尝试了两种解决方案。第一个是创建一个 .NET Core 控制台解决方案,该解决方案调用包含 SharePoint CSOM 代码的 DLL。然后,我尝试从Windows Server 2012 R2数据中心计算机上的IIS上运行的.NET Core 2.2 API调用DLL。但是这两种解决方案都抛出了与上述相同的异常One or more errors occurred. (The process has no package identity. (Exception from HRESULT: 0x80073D54))
。
SharePointHelper.dll代码:
using Microsoft.SharePoint.Client;
using System;
using System.Collections.Generic;
using System.Text;
namespace SharePointHelper
{
public class SharePointHelper
{
public SharePointHelper() { }
public void WriteFilesAndFolders(string siteUrl, string listName, string username, string password)
{
using (var context = new ClientContext(siteUrl))
{
context.Credentials = new SharePointOnlineCredentials(username, password);
var folder = context.Web.GetFolderByServerRelativeUrl(listName);
var subFolders = folder.Folders;
var files = folder.Files;
context.Load(folder);
context.Load(subFolders);
context.Load(files);
if (context.HasPendingRequest)
context.ExecuteQueryAsync().Wait();
var subFolderEnumorator = subFolders.GetEnumerator();
var filesEnumerator = files.GetEnumerator();
PrintValues(subFolderEnumorator);
PrintValues(filesEnumerator);
}
}
private void PrintValues(IEnumerator<Folder> enumerator)
{
while (enumerator.MoveNext())
Console.WriteLine(enumerator.Current.Name);
}
private void PrintValues(IEnumerator<File> enumerator)
{
while (enumerator.MoveNext())
Console.WriteLine(enumerator.Current.Name);
}
}
}
在 SharePointHelper.dll 中调用该方法的 .NET Core 2.2 服务代码:
public void SharePointTest()
{
string siteUrl = @"https://somecompany.sharepoint.com/sites/Test";
string listName = "Documents";
string username = "myemail@somecompany.com";
string password = "mypassword";
var sharePointHelper = new SharePointHelper.SharePointHelper();
sharePointHelper.WriteFilesAndFolders(siteUrl, listName, username, password);
}
我希望 SharePointHelper.dll 能够连接并从 SharePoint 获得响应。但是抛出异常One or more errors occurred. (The process has no package identity. (Exception from HRESULT: 0x80073D54))
。
您可以通过简单地安装 TTCUE.NetCore.SharepointOnline.CSOM
Nuget 包来解决此问题以将 SharePoint 与 .NET Core 一起使用。除非您想深入了解如何执行解决方法,否则没有理由遵循链接指南。