carattere ASP.NET non valido in una stringa Base-64
-
24-10-2019 - |
Domanda
Recentemente ho implementato ELMAH sul mio sito e ho notato che abbiamo spesso ottenere il "Carattere non valido in una stringa Base-64" errore. Non ho mai innescato io stesso e nessuno dei nostri utenti si sono lamentati su di esso in modo da non so cosa sta succedendo. Da quel poco che sono riuscito a trovare su di esso sembra che il ViewState potrebbe essere sempre troppo grande o diventare danneggiato o qualcosa del genere. Qualcuno sa che cosa provoca questo e come prevenirlo? Qui ci sono che cosa credo sono le linee pertinenti nel YSOD.
[FormatException: Invalid character in a Base-64 string.]
[ViewStateException: Invalid viewstate.
[HttpException (0x80004005): The client disconnected.]
C'è qualcosa che posso fare su questi errori o devo solo filtrarli in ELMAH?
Soluzione
Potrebbe essere come le cose sono configurati. Date un'occhiata a questo:
Aggiorna
Prova a identificare dove si sta verificando. Ci possono essere diverse cause possibili:
"carattere non valido in Base-64 String" utilizzando ASP.NET e C #
asp.net non valido carattere in una stringa Base-64
Alla fine della giornata, se come dici tu, non è causa di alcun problema di produzione, quindi è possibile filtrare questi errori. Prova a impostare EnableViewStateMac false?
Altri suggerimenti
Nella mia esperienza, questo errore tende ad essere causa di l'utente fa doppio clic su un pulsante che attiva un postback. La seconda richiesta postback descritto, la prima. Il viewstate della prima richiesta viene presentata solo parzialmente, per cui non è valida, ma l'errore non può essere inviato al browser perché ha disconnesso, che innesca l'errore di livello superiore. Questo può essere un problema più grande se l'utente facendo qualcosa di due volte causa problemi. In caso contrario, questi errori possono semplicemente essere filtrati. Ecco un buon esempio di filtrare errori simili in ELMAH: https://stackoverflow.com/a/2549509/267448
Se si utilizza ASP.NET WebForms, ecco qualche codice per disabilitare il controllo di attivazione durante il postback: http: //disturbedbuddha.wordpress .com / 2007/12/10 / disabilitazione-a-trigger-control-durante-asincrono-postback /
Attenzione che se si disattiva un HTML tasto, è escluso dalle vostre variabili di modulo, in modo che il lato server evento Click non lo fa fuoco. La modifica a un correzioni. In WebForms, che sarebbe
I lavori di cui sopra con le pagine WebForms AJAX, ma qui è anche un po 'di jQuery mi si avvicinò con per le altre pagine.
$(function () {
$("a[href^='javascript']").click(function (event) {
if (event.target.disabled)
return false;
event.target.disabled = true;
setTimeout(function () {event.target.disabled = false;}, 250);
});
});