2016-10-07 2 views
0

Я знаю, что ошибка слишком высока в HTTP 413 слишком часто возникает в FAQ. Но у меня есть вариант, который я не мог понять уже два дня. Я создал конечную точку службы WCF как часть приложения SharePoint 2013 (см. Ниже). На веб-сайте включен SSL, и я получаю ошибку 413. Я пробовал увеличивать maxReceivedMessageSize на сайте web.config на многие сообщения, связанные с этой ошибкой, а также на изменение флага на самом сайте через диспетчер IIS/Site/Management/Configuration Editor. Но ничего не работает. Я могу отправлять небольшие файлы без проблем. Я думаю, что, возможно, SharePoint делает что-то, чтобы отменить привязку, и что мне нужно применить maxReceivedMessageSize изменения в другом местеСообщение об ошибке HTTP 413 для веб-службы SharePoint

контракт Услуги

[ServiceContract] 
public interface ISharepointService 
{ 

    [OperationContract] 
    [WebInvoke(Method = "POST", UriTemplate = "UploadFile?partner={partnerid}&location={locationid}&filename={filename}&type={type}&period={period}")] 
    void UploadFile(string partnerid, string locationid, string filename, string type, string period, Stream stream);* 

web.config

<services> 
    <service behaviorConfiguration="serviceBehavior" name="MyCompany.Sharepoint.MyService.SharepointServiceApp"> 
    <endpoint address="Sharepoint" behaviorConfiguration="webBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="MyCompany.Sharepoint.MyService.SharepointServiceApp"></endpoint> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 
<bindings> 
    <webHttpBinding> 
    <binding name="webBinding" maxReceivedMessageSize="2147483647"> 
     <security mode="Transport"> 
     </security>   
    </binding> 
    </webHttpBinding> 
</bindings> 

ответ

0

Необходимо установить больше конфигураций, попробуйте установить:

<system.web> 
    <httpRuntime maxRequestLength="2147483647" /> 
</system.web> 

И добавьте в ваше связывание:

<webHttpBinding> 
    <binding name="webBinding" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647" maxBufferSize="2147483647"> 
     <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" /> 
     <security mode="Transport"></security>   
    </binding> 
</webHttpBinding> 
+0

К сожалению, это не сработало для меня. Поскольку я видел, что это исправление обсуждалось широко, мне интересно, является ли это конкретным для SharePoint, и, возможно, я просто не делаю изменения в нужном месте. У меня есть проект VS с установленной службой, которая создает SharePoint WSP. Я установил его в app.config в моем проекте – SylverSmyth

+0

Я вижу, что изменения применяются в файле bin/project.dll.config. Но я действительно не понимаю, что происходит с конфигурацией, когда WSP развертывается в веб-приложении SharePoint. Возможно ли это внедрено где-то в содержимом сайта? И если да, то как я могу проверить правильность применения привязки? – SylverSmyth

0

Я был в состоянии решить эту проблему путем создания/изменения привязки для моей службы в SharePoint. Я сделал это, выполнив следующий сценарий powershell:

$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService; 
$contentService.ClientRequestServiceSettings.MaxReceivedMessageSize = -1 
$wcfServiceSettings = New-Object Microsoft.SharePoint.Administration.SPWcfServiceSettings 
$wcfServiceSettings.ReaderQuotasMaxStringContentLength = 2147483647 
$wcfServiceSettings.ReaderQuotasMaxArrayLength = 2147483647 
$wcfServiceSettings.ReaderQuotasMaxBytesPerRead = 2147483647 
$wcfServiceSettings.MaxReceivedMessageSize = 2147483647 
$wcfServiceSettings.MaxBufferSize = 2147483647 
$wcfServiceSettings.ReaderQuotasMaxDepth = 2147483647 
$wcfServiceSettings.ReaderQuotasMaxNameTableCharCount = 2147483647 
$contentService.WcfServiceSettings["<my service name>.svc"] = $wcfServiceSettings 
$contentService.Update($true) 

Это эффективно, как и предполагалось первоначальным ответчиком. Но он исправил проблему для сценария особого случая, когда веб-служба является частью приложения SP.