l modulo filtro delle richieste è configurato per negare una richiest...

lunedì 16 giugno 2014 - 12.21
Tag Elenco Tags  C#  |  .NET 4.0

svipla Profilo | Senior Member

Ciao a tutti
Devo inviare dati utilili per effettuare una ricerca o per impostare dei filtri da una pagina all'altra.
Per far questo mi creo una stringa json, la cripto e passo la stringa criptata nell'url della pagina.

Quando la stringa è troppo lunga ricevo questo errore:
Errore HTTP 404.15 - Not Found
Il modulo filtro delle richieste è configurato per negare una richiesta quando la stringa di query è troppo lunga.

Questa è la stringa che invio:

q=VP%2bDIfR57tul9EW6s8DheNmGWGZhk8ISi1rmdvPm4wIoUqt8O4TgFLD9pvVm8H%2fBnIvXR3%2bMXtiUC%2fQ%2fzT96Q3B%2bDVrsS8h1v6IfyM%2bACNRYDK3HkLKSuWvF74ryf9ccmIMqOBilcqfTHMgS1IZ%2faOvRyFCCD%2fWPX3zpRQhM8VkoOviDMPjqikgd8iQrGVI3okXxWLpu7EhKOcF1STDkfihAumqUzu4bVXj7PxFQXAuKw%2ffFBL2t1cRBYs84TLmZgqDgZQP%2bDc0aIoWJjoRLetrf0vbYBttdwDznvPqePsesAS20JymtVb0S082d7yf5dgNhK8wrM9YGOG2T7thfzj0RGRoW%2bPnDfIN5FFZW3k5aNPvIKZbFAQQjlJ%2fntypMUMQ0QVtz7i5nqEYLPMa9QnUfRblb5ox6VrxITiL1pv7YSiJWxgOCUpet2UsR%2fsvvP52Yt%2fXDcBfdumit%2fCM9xX4rpG3G6qIplxL%2fKhEZbQ5AHsoD%2fLPYz0zVzyXz36FpiaRn2qJH5kETzQRpZBh%2bR5ZjGTaYuTZ%2f75tbvrIIkdERl6wDyHOegbJdtalwRDhMy4y7M9vJ5%2bRM%2brdKvGNvUsl%2bZVUAbuB1rlT9cwEhctCM49lEBT0rFrWPYOXGLMfuQoxjCbF5AqLI8KkJO80LPXKWRp8GnUwbEwrAr4uWN5hXx0FyTRPWWXYxHnv8jRwxUQfDd6996IUEIv1Q%2fnb7dAkX2072WowUCmHfnulAMOsbOtBVJsiOcljrWpmMCW5ldRxwbLRwfauNgRHcpJxxg2kTycwmgK1lKZ0dDUJN%2bx2bGKwykI0P56V6TRpX5w9pX%2fiP5ohfkyWDALMCgVg3EH4rosGcVsJR5VGDpFWI6NcLH%2fB5o4a0igNnJjt7kol3ub3qtRhUdry6wzOr50DkcsjDcgqtljoSi4%2bDMwzINUnLh7Oxjc1rNzUFspu0HhXNNLk8KgQylaH8IIjKNV7UjVGcWZENXv7DijSjQiU9CuJvENzaN8%2fcth%2fH567wzVklN1bRapdmTnVPvbvos1qmV4dacFpVzZB%2f2iJ0lPY38v1JGKhO6hzWgfbIrBKlNEcrqMaudSD%2fpZlDAyP%2fH2Cr5r%2b5Rp4Vww17V1cPAJgo2Kmd4VPVJjUtMZjmbRKMJaS4%2b5%2bFvDMAS5OUyOAWofbbVUWCQAfSpFLF6JEZ%2bs9hg7jYpribD6T034ZRvW%2f%2bz9bjKpFwcMFQfn8K3nANKgwhxEGB1vAFKN2GGcV1baP%2foniIiU4TbYJ5RhJ2cPEfDxxPhamh1vxmQOR6MYrTX0mxb0oGahFQwgldoeh%2f9NK3iq3apFykmJ4QWeOVu69ozmTbh20QMp%2fN7RlQIbD2FyaxOGuwa%2bjmM5mlsUBJyvHORcSvbyV9QhywSqVvgaTsV619MhmYzvldVa2B5s9foirelb3oaPy%2fgyh73m3lxQDKrzS8uCcKcfNUqe2ZaxO5bHKpl5GOreW4rRkGWPmSXd5usUetxhGaqhWBOb0wHpPDfxXqhxbZIYy8tvrHSPTlOpn6VnmvRRGHpoUq0qZJCNgoIuDMfBsjecHSh90mEtFOtoVd8kGqeKZSu65%2bgol8lfzBGzATvNVDGMKx63tU9f2WRUOPgOvd55oi8zM3O4hc5DvSrU%2fBHk45BXX4Izb3SGnSnqL5rFbjuW7GGvdWGDi3nIUSM7yhjtFhKPRDcYcgUfie2Odu426Nvc9nMGR0fq0FMmW7PDlB1%2f1isuKiVRbRg4xc1XTs%2fHM%2fzFQm7RTrkTc9wZwZ6nGcnbBeltSDtu9q%2fLhTbD2BqbW9O4Vq6b6IUyhrKXABi02o5V1f133yI7c4K%2b1l6jURTJvPs7CGnRP0fJMi6IBaSwcYOfxCol7LAP%2bWwKEu7kmysAHk1Acf5b60zNjgjpxsavMMeUX3rKYQ6ziT7BuaGkw2jG4GcMIqkgnIdKiFC%2fj8FCQCc%2bfeCBNPN9Sfb4DhSpRvuMkVJ5a3fOyGkD%2fJbd3%2bgC%2fypNDBFpCYQJ%2bjidhqRjetx%2bntJwvW%2bBzTvm3hVQ1qFADy2mBMaHo691XI7ptFE0LwwehWU7OE5OCSLOp%2bCP0GS2JfTJqIZgzdMgZ6lFIDiSaJ1RAkA7R1RKt3VDjPFXyaCM0Us5%2fJhQ%2b%2bT1XAOEjKboYzpv8hlxuhMeCxE0RKFVBVxeOdu07NQ58EPvN670U2g2meZiXRCqGjBiHdnmnqPxdGA24%3d

Ho provato a impostare maxQueryStringLength, ma continua a darmi errore.

Come risolvo il problema o ci sono soluzioni migliori?

Grazie mille

0v3rCl0ck Profilo | Guru

>Ciao a tutti
>Devo inviare dati utilili per effettuare una ricerca o per impostare
>dei filtri da una pagina all'altra.
>Per far questo mi creo una stringa json, la cripto e passo la
>stringa criptata nell'url della pagina.
>
>Quando la stringa è troppo lunga ricevo questo errore:
>Errore HTTP 404.15 - Not Found
>Il modulo filtro delle richieste è configurato per negare una
>richiesta quando la stringa di query è troppo lunga.

si perchè la tua stringa eccede il limite imposto dagli standard, leggi una spiegazione dettagliata qui: http://stackoverflow.com/a/417184/1082342

in poche parole un URL dovrebbe rimanere sotto i 2000 caratteri per funzionare in tutti i client e server. solo la tua query string invece conta 2352 caratteri.

>
>Come risolvo il problema o ci sono soluzioni migliori?
>

o trovi un sistema per comprimere il dato che mandi, oppure non usi la query string, ma usi il body dell'http request, spedendo i dati in POST. Pensando ad una compressione gzip, per poterla poi passare in query string dovrebbe essere comunque codificata in caratteri, e quindi non so quanto risparmieresti, per tutta quella complicazione di codice... Spedire via POST è una soluzione sicuramente efficace, e lo puoi fare da client in javascript, il problema qui che dipende da quello che stai cercando di fare... Se è un link che vuoi dare anche a terzi da potere sfruttare per pre-compilare ad esempio un form, il post è un problema, e a questo punto devi fare qualcosa di un po' più sosfisticato, tipo salvare queste query in un database associando un identificativo corto, una sorta di servizio interno di url shortening come goo.gl bitly.com ecc... (http://goo.gl/ https://bitly.com/ http://ow.ly/ http://tiny.cc/), in pratica se devi passare il link a qualcuno, quest'ultimo dalla pagina web verrà generato su comando e salvato a db, e il link diventerà qualcosa tipo http://miodominio.com/ext/qSd8EaL a cui sono associati dei dati che ti permettono di precompilare i campi di ricerca.

Ad esempio questo post a un link così: http://www.dotnethell.it/forum/messages.aspx?ThreadID=45127
trasformato con goo.gl diventa così: http://goo.gl/ib0GuA

nel tuo caso più che per accorciare il link, ti serve proprio per non avere un link lungo, ma la pagina che risponde a ext/[codice] prenderà quel [codice], farà la query a db, ed estrapolerà quei dati che hai criptato, per poi andare ad aprire la pagina con i filtri per-compilati.

>Grazie mille
di niente
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

svipla Profilo | Senior Member

Ciao e grazie
devo provare con la soluzione del db perchè mi creo dei link e non posso passare i dati in post.
Grazie mille

0v3rCl0ck Profilo | Guru

secondo me quella del db, potrebbe essere una buona strada, ovviamente hai più lavoro, però poi è anche vero che non hai più limiti nella quantità di informazione che ti puoi salvare per "link".


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5