2016-05-12 2 views
0

Я видел другие сообщения по этой теме и думаю, что я пробовал все и не могу решить эту ошибку при попытке сохранить файл большего размера. Я столкнулся с maxReceivedMessageSize и всеми другими конфигурациями, относящимися к размеру, в обоих разделах конфигурационных файлов, а также столкнулся с uploadReadAheadSize через диспетчер IIS. Я не вижу, чего бы я мог потерять, поэтому я буду публиковать свои файлы конфигурации в надежде, что кто-то сможет обнаружить что-то не так.413 Request Entity Too Large WCF

Служба конфигурации:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5rge93gerg9" requirePermission="false" /> 
    </configSections> 
    <appSettings> 
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> 
    </appSettings> 
    <system.web> 
     <compilation debug="true" targetFramework="4.5" /> 
     <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" /> 
    </system.web> 
    <system.serviceModel> 
     <client> 
     <endpoint address="/" binding="basicHttpBinding" bindingConfiguration="MyHttpBinding" contract="*" name="Default" /> 
     </client> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="MyHttpBinding" hostNameComparisonMode="Exact" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Streamed"> 
       <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <protocolMapping> 
     <add binding="basicHttpsBinding" scheme="https" /> 
    </protocolMapping> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <security> 
     <requestFiltering> 
      <requestLimits maxAllowedContentLength="2147483647" /> 
     </requestFiltering> 
    </security> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <directoryBrowse enabled="true" /> 
    </system.webServer> 
    <connectionStrings> 
    </connectionStrings> 
    <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
</configuration> 

Соответствующая часть клиента конфигурации:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="MyHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"> 
       <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
<client> 
    <endpoint address="http://Service1.svc" binding="basicHttpBinding" 
    bindingConfiguration="MyHttpBinding" contract="ServiceReference1.IService1" 
    name="MyHttpBinding" /> 
</client> 

+0

, насколько велик файл? –

+0

@AmitKumarGhosh Только около 2 МБ – JSchins

ответ

0

Я не вижу <services> раздел в вашей конфигурации службы, так что даже если у Вас есть определяет привязку с более крупными значениями, она не используется, потому что она не установлена ​​как обязательная привязка по умолчанию и не имеет явной привязки к конечной точке. Вместо этого вы получаете basicHttpBinding с квотами и ограничениями по умолчанию.

В вашей ситуации, проще исправить это, вероятно, исправить конфигурационный файл сервиса и удалить раздел <client> и добавить <services> раздел, например:

<services> 
    <service name="MyServiceName"> 
    <endpoint address="/" 
       binding="basicHttpBinding" 
       bindingConfiguration="MyHttpBinding" 
       contract="*" 
       name="Default" /> 
    </service> 
</services> 

Это задаст конфигурацию «MyHttpBinding» к вашему конечная точка.

Обратите внимание, что вы также можете настроить «MyHttpBinding» по умолчанию для всех конечных точек basicHttpBinding, опуская атрибут name.