c# - Hur man konfigurerar web.config för att tillåta förfrågningar av valfri längd
Jag bygger en webbplats där jag skulle vilja skapa en fil på klientsidan från värdet av ett textarea-element.
Jag har koden på plats för att göra detta, men jag får det här felet
HTTP-fel 404.15 - Ej hittad Begäran filtreringsmodul är konfigurerad för att neka en begäran där frågesträngen är för lång.
Finns det ett sätt att åsidosätta detta så att jag kan behandla förfrågningar av vilken storlek som helst?
Om inte, finns det ett sätt att generera filer på klientsidan utan att använda filsystemet/ActiveX-objektet?
tack
Svar #1
Lägg till följande i din web.config:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxQueryString="32768"/>
</requestFiltering>
</security>
</system.webServer>
Se :
http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits
Uppdaterad för att återspegla kommentarerna.
requestLimits-element för requestFiltering [IIS-inställningsschema]
Du kan behöva lägga till följande i din web.config också
<system.web>
<httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>
Se: httpRuntime-element (ASP.NET-inställningsschema)
Självklart är siffrorna (32768 och 65536) i konfigurationsinställningarna ovan bara exempel. Du behöver inte använda just de värdena.
Svar #2
I mitt fall (Visual Studio 2012/IIS Express/ASP.NET MVC 4-app/.Net Framework 4.5) var det som verkligen fungerade efter 30 minuters försök och misstag att sätta maxQueryStringLength-egenskapen i <httpRuntime>-taggen:
<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />
maxQueryStringLength har standardvärdet 2048.
Mer om det här:
Utöka räckvidden för tillåtna URL:er
Jag försökte ställa in det i <system.webServer> som @MattVarblow föreslår, men det fungerade inte... och det beror på att jag använder IIS Express (baserat på IIS 8) på min utvecklingsmaskin med Windows 8.
När jag distribuerade min app till produktionsmiljön (Windows Server 2008 R2 med IIS 7) började IE 10 returnera 404-fel vid AJAX-förfrågningar med långa frågesträngar. Då trodde jag att problemet var relaterat till frågesträngen och provade @MattVarblows svar. Det fungerade bara på IIS 7. :)
Svar #3
Om du stöter på detta problem när du kör en IIS 8.5-webbserver kan du använda följande metod.
Först, hitta "Request Filtering"-modulen på den IIS-webbplats du arbetar med, och dubbelklicka sedan på den...
Nästa steg är att högerklicka i det vita området som visas nedan och sedan klicka på kontextmenyns alternativ som heter "Redigera funktionsinställningar".
Sedan är det sista att göra att ändra värdet på "Maximum query string (Bytes)" från 2048 till något mer lämpligt, såsom 5000, för dina behov.


