簡體   English   中英

為什么我的 C# 在 SharePoint 上找不到任何列表?

[英]Why can't my C# find any lists on SharePoint?

我正在嘗試使用站點 url https://example.sharepoint.com/MySite在 Online SharePoint 上創建一個文件夾

我真的不關心 SharePoint 列表,但我找不到任何有關 SharePoint API 的信息,該 API 向消費者隱藏了此實現細節,也找不到任何文檔可以很好地預測我的需求以告訴我我需要做什么,所以我正在努力處理列表。

目前,我只想簡單地列出我網站上存在的任何列表。 我的網站有一些簡約的內容,所以我希望在一個世界上一切都有列表,應該有一些列表涉及,我應該能夠以某種方式列出它們。

我有以下代碼:

            using (ClientContext context = _authenticationManager.GetContext())
            {
                Web web = context.Web;
                context.Load(web.Lists, lists => lists.Include(list => list.Title, list => list.Id));
                context.ExecuteQuery();

                foreach (List list in web.Lists)
                {
                    _logger.LogInformation(list.Title);
                }
            }

我已經能夠使用調試器和控制台來確認 AuthenticationManager 已成功生成身份驗證令牌。

代碼執行時, context.ExecuteQuery(); 導致以下錯誤:

[14:49:48 INF] 成功為用戶 someuser@somemail.foo <s:SharepointOrderContractExtractor.Clients.AuthenticationManager> 請求新的訪問令牌資源 example.sharepoint.com [14:49:48 ERR] 執行時發生未處理的異常請求。 <s:Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware> System.Net.WebException:遠程服務器返回錯誤:(404) 未找到。 在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute() 在 Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) 在 Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery() 在 Microsoft .SharePoint.Client.ClientRuntimeContext.ExecuteQuery() 在 Microsoft.SharePoint.Client.ClientContext.ExecuteQuery() 在 SharePointOrderContractExtractor.Clients.Client.CreateFolder(String folderName) 在 C:\\projects\\SharepointOrderContractExtractor\\SharepointOrderContractExtractor\\Clients\\Sharepoint\\Client。 cs:line 34 at SharePointOrderContractExtractor.Services.SharePointService.CreateDestination(List 1 orderNumbers) in C:\\projects\\SharepointOrderContractExtractor\\SharepointOrderContractExtractor\\Services\\SharepointService.cs:line 128 at SharePointOrderContractExtractor.Services.SharePointService.CollectForAsync(List ) :\\projects\\SharepointOrderContractExtractor\\SharepointOrderContractExtractor\\Services\\Sharep ointService.cs:line 95 at SharePointOrderContractExtractor.Services.SharePointService.FetchContractsAsync(FileUploadModel uploadModel) in C:\\projects\\SharepointOrderContractExtractor\\SharepointOrderContractExtractor\\Services\\SharepointService.cs:line 51 at SharePointOrderContractFileExtractor.VetchContractsAsync(FileUploadModel uploadModel)在 C:\\projects\\SharepointOrderContractExtractor\\SharepointOrderContractExtractor\\Controllers\\V1_0\\SharepointController.cs:line 48 at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor controller, executor) Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Logged|12_1(ControllerActionInvoker invoker) 在 Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean Completed ) 在 Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) 在 Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) 在 Microsoft.AspNetCore.Mvc.Infrastructure .ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|19_0(ResourceInvoker invoker, TaskScope lastTask, State next,范圍、對象狀態、布爾值 isCompleted) 在 Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Logged|17_1(ResourceInvoker invoker) 在 Microsoft.AspNetCore.Routing.EndpointMiddleware.g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogbuckger logger) at Swashle .AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider) 在 Microsoft.AspNetCore.Authorization.A uthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(Context)

我錯過了什么和/或做錯了什么? 我該如何糾正?

感謝@arconaut 在評論中提出的問題:

身份驗證管理器似乎只使用域,而不是完整的 URL 來進行身份驗證。

雖然我的網站 URL 設置為https://example.sharepoint.com/MySite ,但它應該是https://example.sharepoint.com/sites/MySite

(我想我在嘗試遵循一些可能與我的 Salesforce 版本不匹配的文檔時從配置中刪除了“站點”。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM