SharePoint System.Net.WebException:“遠程服務器返回錯誤: (414) REQUEST URI TOO LONG。”
2024-12-26 20:35 四毛的家 閱讀(69) 評論(0) 收藏 舉報SharePoint CSOM執行下面代碼時報錯:
string fileServerRelativeUrl = "/xxxx/2003249_98.RXE";
using (var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctxOriginal, fileServerRelativeUrl)) using (var reader = new StreamReader(fileInfo.Stream)) { Microsoft.SharePoint.Client.File.SaveBinaryDirect( //Client Context ctxTarget, // Server relative url of the document //listTarget.RootFolder.ServerRelativeUrl + file.ServerRelativeUrl.Replace(libraryServerRelativeUrlOriginal,""),//新路徑 fileServerRelativeUrlTarget, // Content of the file reader.BaseStream, // Overwrite file if it's already exist true); ctxTarget.ExecuteQuery(); }
報:

嘗試修改web.config如下
在Web.config文件中添加以下配置。
-
<system.web>
-
<httpRuntime maxRequestLength="102400" maxQueryStringLength="102400"/>
-
</system.web>
-
<system.webServer>
-
<security>
-
<requestFiltering>
-
<requestLimits maxAllowedContentLength="102400" maxQueryString="102400" />
-
</requestFiltering>
-
</security>
-
</system.webServer>
未能解決。
經過各種嘗試,一篇來自stackoverflow的帖子提醒了我,
“It was a permission problem. The IIS user did not have read-rights to the folder. Changed to use application pool identity instead and now its working.”
我的賬號權限足夠。經過查詢原來是SharePoint管理中心設置“被禁止的文件類型”導致的。讀取的文件是Rxe類型,被禁止了。

參考:
https://blog.csdn.net/qq_38974638/article/details/108500973
https://stackoverflow.com/questions/46190612/the-page-was-not-displayed-because-the-request-uri-is-too-long
----------------------------------------------------
- 文字少的博文不允許投稿到該網站分類 (以下內容跟本文主題無關)
---------------------------------------------------------
https://learn.microsoft.com/en-us/answers/questions/636509/csom-how-to-copy-a-document-from-one-document-libr
CSOM: How to copy a document from one document library to another documents library?
I have a requirement to copy documents that meets a certain criteria ( i.e once a document's approval status = approved) to an Archived documents library. I am looping through all the sites and using CAML query to filter out the documents with approved status but I have no idea how to copy the document to a different library location using CSOM C# after checking this condition. Also, I need the document to be replaced in case it is already present in the archived library.
Note: The archived library is in a different site collection.
Any help is greatly appreciated. Thank you in advance.
var bookname = item.DisplayName; string bookLocation = $"{rootFolder.ServerRelativeUrl}/{bookname}"; var absoluteUrl = new Uri(ctx.Url).GetLeftPart(UriPartial.Authority) + bookLocation; var srcUrl = absoluteUrl; var destUrl = "https://abc.sharepoint.com/sites/Archive"; var srcLibrary = "Documents"; var destLibrary = "Records"; ClientContext destContext = new ClientContext(destUrl); ClientContext srcContext = new ClientContext(srcUrl); destContext.Credentials = SPAuth.GetSPOnlineCredentials(); srcContext.Credentials = SPAuth.GetSPOnlineCredentials(); Web srcWeb = srcContext.Web; List srcList = srcWeb.Lists.GetByTitle(srcLibrary); Web destWeb = destContext.Web; destContext.Load(destWeb); destContext.ExecuteQuery(); try { Microsoft.SharePoint.Client.File file1 = srcContext.Web.GetFileByServerRelativeUrl(bookLocation); srcContext.Load(file1); srcContext.ExecuteQuery(); string location = destWeb.ServerRelativeUrl.TrimEnd('/') + "/" + destLibrary.Replace(" ", "") + "/" + file1.Name; FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(srcContext, file1.ServerRelativeUrl); Microsoft.SharePoint.Client.File.SaveBinaryDirect(destContext, location, fileInfo.Stream, true); } catch (Exception ex) { telemetry.TrackException(new Exception("Failed to copy the book to archive library", ex)); }
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
文-字-少-的-博-文-不-允-許-投-稿-到-該-網-站-分-類,真*惡*心
浙公網安備 33010602011771號