2014-09-19 2 views
0

Я получаю сообщение об ошибкеЗагрузка файла в Sharepoint Возвращает 413 Request Entity Too Large

A Web exception occurred while attempting to issue the request. The remote server returned an error: (413) Request Entity Too Large.:

при попытке загрузить файл на Sharepoint сайта из веб-приложения ASP.NET. Пользователь добавляет выбранный файл через элемент управления загрузкой ASP.Net, а код ниже загружает его в Sharepoint. Файл, который я пытаюсь загрузить, составляет ~ 250 тыс. (Т. Е. Не очень большой).

Код выглядит следующим образом:

public string SharepointWebClientSOAPPost(Uri webService, string SOAPAction, string contentType, string postData, NetworkCredential networkCredential = null, string webProxy = "", NetworkCredential webserviceCredentials = null) 
{ 
    try 
    { 
     using (WebClient client = new WebClient()) 
     { 
      if (string.IsNullOrEmpty(webProxy) && webserviceCredentials != null) 
      { 
       client.Proxy = new WebProxy(new Uri(webProxy)); 
       client.Proxy.Credentials = webserviceCredentials; 
      } 
      if (networkCredential != null) 
      { 
       client.Credentials = networkCredential; 
      } 

      client.Headers.Add(HttpRequestHeader.ContentType, contentType); 
      client.Headers.Add("SOAPAction", SOAPAction); 

      // Apply ASCII Encoding to obtain the string as a byte array. 
      var byteArray = Encoding.ASCII.GetBytes(postData); 

      // Upload the input string using the HTTP 1.0 POST method. 
      var responseArray = client.UploadData(webService, "POST", byteArray); 

      // Decode and return the response. 
      var response = Encoding.ASCII.GetString(responseArray); 
      return response; 
     } 
    } 
    catch(Exception ex) 
    { 
     //etc. 
    } 
} 

Я следующий набор в web.config

<httpRuntime maxRequestLength="1024000" /> 

Он отлично работает, если я использую текстовый файл, который несколько к, так Я думаю, что основная идея правильная (сообщение SOAP отформатировано нормально, а URL-адрес верен). Тем не менее, мне сказал человек, который запустил сайт SP, что он настроен на прием документов размером до 50 МБ.

Любые идеи, в которых я могу начать искать проблемы?

ответ

1

Использование кода WCF, чтобы загрузить файл и не ASP.NET для этого вы должны настроить Web.config MaxReceivedMessageSize так:

<system.serviceModel> 
    <bindings> 
    <basicHttpBinding> 
     <binding maxReceivedMessageSize="10485760"> 

     </binding> 
    </basicHttpBinding> 
    </bindings> 
</system.serviceModel> 
+0

Извинения для задержки в моем ответе - но это не работает (то же самое ошибка). На веб-сайте не размещена услуга, и поэтому я не думаю, что ошибка находится в «получении», а скорее в «отправке» – glosrob

+2

См. [This] (http://stackoverflow.com/questions/24009527/solved-wcf- the-remote-server-received-an-error-413-request-entity-too-large) и [this] (http://stackoverflow.com/questions/884235/wcf-how-to-increase-message-size -quota) и [this] (http://stackoverflow.com/questions/24930058/file-upload-the-remote-server-returned-an-error-413-request-entity-too-large) – Max

Смежные вопросы