我正在使用客户端对象模型与Sharepoint 2010交互。当我尝试使用客户端OM上载大于3 MB的文档时,它给出了错误错误请求。 Microsoft建议this来解决问题。我试过并更新了maxReceivedMessageSize属性。它重新启动系统后工作正常,但不会应用于正在运行的sharepoint服务器。
我认为由于设置可能已保留在内存中,因此需要重置应用程序,但我会想出要重置的内容。我尝试过重置不同的Sharepoint服务。我尝试在IIS中重置Sharepoint网站。什么都没有帮助。
另外,如果我设置了10 MB的限制,我可以上传大约7.5 MB的文件。我认为这是因为额外的元数据(内容类型属性等)。这是正确的行为,还是我需要改变别的东西。
感谢任何帮助。
问候。
答案 0 :(得分:5)
我发现this TechNet Forum entry帮我解决了这个问题:
请按照以下步骤告诉SharePoint增加文件大小。
Ø作为SharePoint站点管理员,通过
访问SharePoint 2010 Management Shell 1.在“开始”菜单上,单击“所有程序” 2.单击“Microsoft SharePoint 2010产品” 3.单击“SharePoint 2010 Management Shell” Ø然后运行以下命令。
get-PSSnapin - Registered
Add-PSSnapin Microsoft.SharePoint.Powershell
$ws = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$ws.ClientRequestServiceSettings.MaxReceivedMessageSize = 2147483647
$ws.Update()
请按照以下步骤告诉Asp.Net增加文件大小。
Ø编辑所有涉及的web.config文件,添加元素'&lt; httpRuntime&gt;' 完成后,您的添加内容应如下所示 Ø2147483647字节等于1.99 GB<system.web>
<httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="2147483647" requestLengthDiskThreshold="2147483647" executionTimeout="18000"/>
</system.web>
请按照以下步骤告诉IIS 7.0及更高版本以增加文件大小。
编辑所有涉及的web.config文件,以添加元素'&lt; requestLimits&gt;' 完成后,您的添加内容应如下所示<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
我希望这有帮助!
答案 1 :(得分:2)
这不是SharePoint的问题或严格限制。这是为保护SharePoint基础结构而设置的可操作上载限制。虽然操作上载限制为2 MB,但二进制上载限制为50 MB。
目前有三种方法:
正如您已经提到的,增加maxReceivedMessageSize。
使用SaveBinaryDirect方法
这些方法是从SharePoint 2010开始引入的。它主要使用分布式创作版本控制(DAV)来发出PUT请求。使用此方法,您有50 MB的二进制上载限制。
以下是方法#2的示例实现,
string siteURL = "https://records.contoso.com";
using (var context = new Microsoft.SharePoint.Client.ClientContext(siteURL))
{
context.Credentials = new NetworkCredential(
"username",
"password",
"domain");
string filePathToUpload = "C:\test\test.txt";
context.ExecuteQuery();
using (FileStream fs = new FileStream(filePathToUpload, FileMode.Open)
{
string targetURL = "/testsite/test.txt";
Microsoft.SharePoint.Client.File.SaveBinaryDirect(
context,
targetURL,
fs,
true);
}
}
如果您使用的是SharePoint 2013或更高版本,则可以使用REST API。上传限制为2 GB。
答案 2 :(得分:0)
根据你发送的链接,你需要的正确方法应该是这样的:
public static void IncreaseMaxReceivedMessageSize ()
{
SPWebService contentService = SPWebService.ContentService;
/* Must set this to -1, else, the MaxReceivedMessageSize value for
SPWebService.ContentService.WcfServiceSettings["client.svc"] will not be used.*/
contentService.ClientRequestServiceSettings.MaxReceivedMessageSize = -1;
// SPWcfServiceSettings has other Properties that you can set.
SPWcfServiceSettings csomWcfSettings = new SPWcfServiceSettings();
csomWcfSettings.MaxReceivedMessageSize = 10485760; // 10MB
contentService.WcfServiceSettings["client.svc"] = csomWcfSettings;
contentService.Update();
}
请通过编辑您的问题来显示您的代码,并说明您重新启动哪个系统然后它可以正常工作,而不是重新启动或回收您认为不起作用的SP网站...