我正在尝试将照片上传到sharepoint库。如果我使用一个相对较小的文件(370KB),那么它的工作没有任何问题。 但是,如果我尝试上传大约3MB的文件,那么我会收到错误: “Der Remoteserver hat einenFehlerzurückgegeben:NotFound。” 翻译: “远程服务器返回错误:NotFound。”
我读到应该可以设置最大邮件大小,但我发现无法在ClientContext对象中设置这样的东西。
这是我使用的代码:
private void UploadFileCallback(object state)
{
var args = (List<object>)state;
var itemContainer = (ISharepointItemContainer)args.ElementAt(0);
var fileInfo = (FileInfo)args.ElementAt(1);
var sharepointList = _context.Web.Lists.GetByTitle(itemContainer.ListName);
Microsoft.SharePoint.Client.File uploadFile;
FileCreationInformation newFile;
using (FileStream fs = fileInfo.OpenRead())
{
byte[] content = new byte[fs.Length];
newFile = new FileCreationInformation();
int dummy = fs.Read(content, 0, (int)fs.Length);
newFile.Content = content;
newFile.Url = itemContainer.AbsoluteUrl + "/" + fileInfo.Name;
uploadFile = sharepointList.RootFolder.Files.Add(newFile);
_context.Load(uploadFile);
}
_context.ExecuteQuery();
if (FileUploadCompleted != null)
{
FileUploadCompleted(this, EventArgs.Empty);
}
}
有没有人知道如何解决这个问题?
答案 0 :(得分:0)
首先要尝试的是转到SharePoint的管理中心网站中的 Web应用程序管理部分。选择要部署到的Web应用程序的常规设置,并增加最大上传大小。
要尝试的第二件事是将其添加到 web.config :
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800"/>
</requestFiltering>
</security>
</system.webServer>
这样您就可以将尺寸设置为更大的尺寸。
答案 1 :(得分:0)
默认情况下,SharePoint每次上传的最大限制为50MB。 IIS 7(不确定其他版本)每次上传最大限制为30 MB。您需要在IIS中将Ryan提供的XML配置添加到SharePoint网站的web.config中。这是您的前端Web服务器。
答案 2 :(得分:0)
您达到的限制是因为处理客户端对象模型请求的Web服务具有最大邮件大小。您可以增加该大小,但另一种解决方案是使用WebDAV上传文档,如果您无权访问服务器,这将有所帮助。
.NET客户端对象模型有一个方法File.SaveBinraryDirect(),这可能是你最好的选择。
如果您使用的是Silverlight客户端对象模型,则该方法不可用,并且您将编写一些其他代码:请参阅this article,第二部分。第一部分描述了如何增加最大消息大小。
这应该会将您的最大上传大小增加到中央管理员设置的大小(通常为50MB),在其他帖子中指出。
答案 3 :(得分:0)
SharePoint客户端对象模型的默认上载大小限制为2 MB。您可以通过修改服务的MaxReceivedMessageSize
属性来更改该限制。
这可以通过两种方式完成:
以编程方式编写 - 如this link中所述 - 例如,这在Silverlight中无法工作
通过powershell。在安装了SharePoint的服务器上,启动SharePoint Management Shell(确保在服务器场管理员帐户下运行它)并运行以下命令。
$ ws = [Microsoft.SharePoint.Administration.SPWebService] :: ContentService $ ws.ClientRequestServiceSettings.MaxReceivedMessageSize = 52428800
$ ws.Update()
这会将上传限制更改为52428800字节 - 或50 MB。现在,重新启动托管SharePoint站点(或整个IIS)的网站,以使更改生效。