none
Tamanho de upload não segue configuração WCF + MTOM RRS feed

  • Pergunta

  • Olá, senhores.

    Criei um webservice WCF com o protocolo MTOM para fazer upload de arquivos grandes.

    Tudo funcionou bem até meus arquivos chegarem a mais de trinta megabytes.

    Porém, as configurações dos serviços estão marcadas para arquivos de até 2 gigas e os documentos que leio não falam de restrições.

    O serviço parou de funcionar tanto no meu micro, onde tenho o VS2015 funcionando, como em um servidor Windows 2012.

    Esta é a configuração em app.config

        <system.serviceModel>
            <bindings>
                <wsHttpBinding>
                    <binding name="SecureHttp" messageEncoding="Mtom"
                             maxReceivedMessageSize="2147483647"
                             maxBufferPoolSize="2147483647">
                        <readerQuotas maxDepth="32"
                             maxArrayLength="2147483647"
                             maxStringContentLength="2147483647"/>
                        <security mode="None" />
                    </binding>
                </wsHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://r-tablet01/wsAView/MdtService.svc"
                    binding="wsHttpBinding" bindingConfiguration="SecureHttp"
                    contract="ServiceMDT.IMdtService" name="SecureHttp" />
            </client>
        </system.serviceModel>

    Esta é a configuração em web.config

    <?xml version="1.0"?>
    <configuration>
        <appSettings>
            <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
            <add key="BaseDir" value="C:\File_Server" />
        </appSettings>
        <system.web>
            <compilation debug="true" targetFramework="4.5" />
            <httpRuntime targetFramework="4.5"/>
        </system.web>
    
        <system.serviceModel>
            <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
            <bindings>
                <wsHttpBinding>
                    <binding name="SecureHttpBinding"
                             messageEncoding="Mtom"
                             closeTimeout="01:00:00"
                             openTimeout="01:00:00"
                             sendTimeout="01:00:00"
                             maxBufferPoolSize="2147483647"
                             maxBufferSize="2147483647"
                             maxReceivedMessageSize="2147483647">
                        <readerQuotas maxDepth="2147483647"
                                      maxStringContentLength="2147483647"
                                      maxArrayLength="2147483647" />
                        <security mode="None">
                            <transport clientCredentialType="Windows" />
                        </security>
                    </binding>
                </wsHttpBinding>
            </bindings>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="Servicebehavior" >
                        <serviceMetadata httpGetEnabled="true" />
                        <serviceDebug includeExceptionDetailInFaults="true" />
                        <dataContractSerializer maxItemsInObjectGraph="2147483647" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <services>
                <service behaviorConfiguration="Servicebehavior" name="wsAView.MdtService">
                    <endpoint address=""
                              binding="wsHttpBinding" bindingConfiguration="SecureHttpBinding"
                              name="SecureHttp" contract="wsAView.IMdtService" />
                    <endpoint address="mex" binding="mexHttpBinding" name="Mex" contract="IMetadataExchange" />
                    <host>
                        <timeouts closeTimeout="01:00:00" openTimeout="01:00:00" />
                    </host>
                </service>
            </services>
    
        </system.serviceModel>
    
        <system.webServer>
            <modules runAllManagedModulesForAllRequests="true"/>
            <directoryBrowse enabled="true"/>
        </system.webServer>
    
    </configuration>
    

    Como configurar este serviço para arquivos maiores?

    Preciso configurar alguma coisa no próprio IIS, diretamente?

    terça-feira, 23 de fevereiro de 2016 14:55