2012-02-16 10 views
15

Tengo un WebMethod sencillaIIS7 - WebRequest su defecto con un 404.13 cuando el tamaño de la solicitud params excede 30mb

[WebMethod] 
public int myWebMethod(string fileName, Byte[] fileContent) 

Sin embargo, cuando paso una matriz de bytes que es mayor que 30 MB, me sale el error:

HTTP Error 404.13 - Not Found The request filtering module is configured to deny a request that exceeds the request content length.

Mi web.config es el siguiente:

<configuration> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0"> </compilation> 
    <authentication mode="Windows" /> 
    <httpRuntime useFullyQualifiedRedirectUrl="true" 
       maxRequestLength="102400" requestLengthDiskThreshold="102400" 
    /> 
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" /> 
    </system.web> 
    <system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="104857600"/> 
     </requestFiltering> 
    </security> 
    </system.webServer> 
</configuration> 

he buscado en torno, y la causa más común de XX El problema es que la propiedad maxAllowedContentLength es de 30 MB de forma predeterminada. Sin embargo, he establecido que sea de 100mb, así como la propiedad maxRequestLength para httpRuntime.

No encuentro una solución en ninguna parte que no establezca una de las propiedades que ya he probado anteriormente. ¿Hay algo que me he perdido?

+0

Esto me está sucediendo a mí también en 7.5: realmente creo que esto es un error de IIS sin solución. SO: http://stackoverflow.com/questions/16365483/iis-7-5-mercurial-setup-ignoring-maxallowedcontentlength Foros de IIS: http://forums.iis.net/post/set/1043/1197751/2049386 – jocull

+0

El problema particular aquí para mí es realmente con SSL: a través de HTTP simple, todo responde como se espera. Sin embargo, una vez que SSL se enciende, comienza a colgarse. – jocull

+0

Es posible que haya una incompatibilidad de IIS con SSL como se documenta aquí: https://bitbucket.org/tortoisehg/thg/issue/2593/cant-push-over-30mb-to-iis-via-https - Qué dolor descubrir !!! – jocull

Respuesta

8

Se problema puede estar en el hecho de que los ajustes realizados en el archivo web.config pueden ser reemplazadas por ajustes correspondientes presente tanto en el applicationhost.config y machine.config archivos.

Si usted tiene acceso a estos, comprobar si la propiedad overrideModeDefault de las secciones correspondientes se establecen en Permitir, como en el siguiente ejemplo:

machine.config

<requestFiltering overrideModeDefault="Allow"> 
    <requestLimits maxAllowedContentLength="104857600"/>   
</requestFiltering> 

yo sepa no hay manera para anular esta configuración si no tiene acceso al archivo de configuración correspondiente.

Puede encontrar más información sobre la configuración y la configuración de todo el sistema anular here, y herehere - y un caso muy similar here.

-1

Esto es bastante viejo. Pero tengo el mismo problema hoy. Para solucionarlo, debe realizar los cambios de configuración necesarios en web.config y luego implementarlo en el servidor web. La parte importante es que necesita volver a implementar su aplicación en el servidor web. Al hacerlo, la configuración de IIS se actualiza para usted. Dependiendo de cómo realice su implementación, es posible que deba eliminar su aplicación web del servidor web primero y luego implementarla de nuevo. Actualizar web.config en su lugar no solucionará el problema. Espero que esto ayude a otros con el mismo problema.

Cuestiones relacionadas