O servidor remoto retornou um erro: (411) Comprimento necessário

Enquanto carregamos imagens usando o método Coreservice StreamUploadClient.UploadBinaryContent, obtemos o erro abaixo. “O servidor remoto retornou um erro: (411) Comprimento necessário.” Agradeço sua ajuda.

Obrigado, Prasanna

Comentários

  • Você está usando o cliente de serviço principal pronto para usar? Ou você mesmo gerou um?

Resposta

O status HTTP 411 (comprimento obrigatório) geralmente é gerado quando você está fazendo um POST, mas não especificou o tamanho do corpo da solicitação (ou seja, o comprimento do conteúdo que você está salvando).

Já que você não postou seu código, não posso dar-lhe uma sugestão mais específica do que: observe as propriedades da classe que você está usando para fazer a solicitação. Por exemplo, se estiver usando um objeto HttpWebRequest, há um ContentLength propriedade que você deve definir para o número de bytes do arquivo que você está enviando.

Resposta

Em seu aplicativo, observe como aumentar o tempo limite e maxRequestLength. Aqui está um exemplo de web.config

<system.webServer> <directoryBrowse enabled="true"/> <security> <requestFiltering> <requestLimits maxAllowedContentLength="4000000000" maxUrl="10999" maxQueryString="9999"/> </requestFiltering> </security> </system.webServer> 

Comentários

  • Obrigado Robert, onde devemos mencionar essas configurações se usarmos app.config para o aplicativo de console
  • Espero que você possa adicionar essas configurações no IIS também cuidarão dos detalhes internos para você
  • Olá, Robert, Ainda assim o problema persiste, estamos usando streamUpload_basicHttp e a configuração abaixo < binding name = " streamUpload_basicHttp " maxReceivedMessageSize = " 2147483647 " maxBufferSize = " 2147483647 " transferMode = " StreamedRequest " messageEncoding = " Mtom " openTimeout = " 05:00:00 " sendTimeout = " 05:00:00 " receiveTimeout = " 05:00:00 " closeTimeout = " 05:00:00 " > < leitor Quotas maxArrayLength = " 2147483647 " maxBytesPerRead = " 2147483647 " maxDepth = " 2147483647 " maxNameTableCharCount = " 2147483647 " maxStringContentLength = " 2147483647 " / > < / binding >

Resposta

se você não tiver certeza de como definir a configuração de ligação no arquivo de configuração do web / app, você também pode adicionar a configuração no seu código diretamente, consulte o código abaixo.

BasicHttpBinding basicHttpBinding = new BasicHttpBinding { MaxReceivedMessageSize = 10485760, ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas { MaxStringContentLength = 10485760, MaxArrayLength = 10485760 }, MessageEncoding = WSMessageEncoding.Mtom, Security = new BasicHttpSecurity { Mode = BasicHttpSecurityMode.None, } }; EndpointAddress remoteAddress = new EndpointAddress("http://domain paths/CoreService2011.svc/streamUpload_basicHttp"); StreamUploadClient client = new StreamUploadClient(basicHttpBinding, remoteAddress);

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *