La pubblicazione di dati a un HttpHandler maggiore di ~ 29MB dà un errore 404
-
01-10-2019 - |
Domanda
sto testando un HttpHandler che accetta XML. Funziona bene quando una piccola quantità di dati viene pubblicato, ma se inserisco i dati più grandi quindi circa 29MB, ottengo un errore 404 asp.net.
Vi metto al gestore da un altro gestore nello stesso progetto e ho provato 2 metodi - 1. HttpWebRequest con "POST" 2. WebClient con UploadFile () e UploadData ()
ottengo lo stesso errore 404 quando i dati inviati sono al di sopra 28.6 MB .
Inoltre ho provato a mettere un diritto punto di interruzione all'inizio del gestore di ricezione e il debug. Non è mai colpito. Appare come il gestore non è mai stato chiamato. Funziona bene per i dati di dimensioni più piccole.
Ho già la seguente impostazione. Quello che sto facendo male?
<httpRuntime maxRequestLength="1048576" />
EDIT: Ho anche cercato annuncio a un gestore diverso che pretende molto non consuma dati pubblicati, solo per prova, ma i risultati sono gli stessi. Ambiente: Win 7, IIS 7.5, .NET 3.5, VS 2008 alt text http://img401.imageshack.us/img401/4099/errormr.png
Soluzione
ho scoperto che il problema è con IIS 7 e superiori. Si richiede la lunghezza massima richiesta da impostare in un posto diverso.
Vedere i seguenti link -
http: //www.experts- exchange.com/Programming/Languages/.NET/ASP.NET/Q_22943810.html
http://msdn.microsoft.com /en-us/library/ms689462%28VS.90%29.aspx
Il valore predefinito è 30000000. che è 28.6mb. Il modo corretto di set in web.config è -
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824"></requestLimits>
</requestFiltering>
</security>
</system.webServer>
Questa configurazione cancellato l'errore mi è stato sempre. Vorrei che gli errori riportati sono stati più descrittivo, almeno su macchine locali
Questo significa che l'impostazione
Altri suggerimenti
Provare ad aggiungere questa sezione per il file web.config
:
<location path="YourHandler.aspx">
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</location>
supponendo percorso gestore è YourHandler.aspx
.