首页 > 其他分享 >SharePoint System.Net.WebException:“远程服务器返回错误: (414) REQUEST URI TOO LONG。”

SharePoint System.Net.WebException:“远程服务器返回错误: (414) REQUEST URI TOO LONG。”

时间:2024-12-26 20:43:31浏览次数:2  
标签:Web SharePoint REQUEST System library srcContext var document

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文件中添加以下配置。

  1. <system.web>
  2. <httpRuntime maxRequestLength="102400" maxQueryStringLength="102400"/>
  3. </system.web>
  1. <system.webServer>
  2. <security>
  3. <requestFiltering>
  4. <requestLimits maxAllowedContentLength="102400" maxQueryString="102400" />
  5. </requestFiltering>
  6. </security>
  7. </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));  
}                                

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

文-字-少-的-博-文-不-允-许-投-稿-到-该-网-站-分-类,真*恶*心

标签:Web,SharePoint,REQUEST,System,library,srcContext,var,document
From: https://www.cnblogs.com/sygwin/p/18634146

相关文章