Ab und zu wenn ich meine App laufen bekomme ich wirklich "WIRKLICH" seltsame Zeichen in meiner Ausgabe anstelle der entsprechenden Seite. Jetzt weiß ich, dass dies wegen eines Fehlers ist, aber leider stellt sich der Fehler nicht selbst vor, sondern produziert nur merkwürdige Zeichen.ASP.NET MVC2 CrAzY Zeichen in der Ansicht Ausgabe - WTF
Hier ist ein Beispiel für einen vollständigen Seitenquellcode.
I�%&/m�{J�J��t��
$ @ iG #) eVe] f @ 흼 {{N‘ ? \ Fdl J ɞ! ? ~ |? " Ey ') = y6 h u r j fŲIU < [ 2O 2_ ] i ߴ 餚] l g ~ O , [f Wyq1o- z QS iUV I M ԃ z > EV_ Z = J T f Z gi r k ܷ ZPW4 , KO eS י y/ m^+ E eB c j w , Vu Q $ n: @] uC_ X_ E^ d Tm [- ; w v V r MJY y uYP 祐 2 uC w} V | WI d \ 0 > m ւ h % y i ) X d jUS z x^WŬ v Ϛ $ G ^O qq { . 0 = 8 f y6 ? . r ~; [Bt ~ /K z | - W ¼ Q & 4B Q 4o u x | wrt L Kо $) Ms . 4- ٺ. 4 ]>] ˷ 7! 4 IZc M; N_ y e _q % L C PE 9 e j J [^ fe1 r ֏ p߯ uM 3 = B È , H Y sz S̨ T ? } k Ⱊ p l _d ̼/SZ�<5���j��Wd�wc�O�䣏0 ���O/��h�jv��a�����}�J��y��E���zA�[email protected]��45e�e�4?��e�u��vӆ��N����C�b���zE��!���UY��X�s�l���#��?}��Χm����/��u �I���уO��2[Lf����y5�:)�fM����(�Q���}��)!�������d���t|< �
PO $ ꀜ ? = 6 <?/q> b 7 ^(= {Z Y} u = 8 u J D c vt O ܋ / 1ev} RfM3/ ~ h ϊ - } : a \ lZ < [/ Rv 5K (F C b {; { {; ? {^ 4- R | > [6 : ps FA ' 7 ehU + R > 0 { ܍ FI; w œ 2JӼi r > po? J2 ] m U1 {J / , C p^W jm $ 0^7d : n Vd + t9c- x ٹ . W w ~ 3 A 9 v ۮ - M/= > R | wǽy Y ? 8 { N 7 # 7 / + ͋UIJa fy v x ] x}? ~ 1s u ! p ] 4 /i] 5 y I A^U T_ { ? 9 0 = ~ e " p i ض nr k [z {# . s @# M8 | G C Y Q7z m/z >> (>> 9Տ 7: EG N g7? = - 1 9 ir z 7vi4 x 76 v > z v0 ~ 3 zn 8 ]/H \ w q ? 9 հ k ~ 3} 3 7 G: ߤ ~ n q } y Ō # 6) 2 \ lM s p^\ @ Vi3 Rr 'Uc PDf h a t : D c җ E88 UH' 7 j * _Tm 岼 ֦4 U] ֬ | yYe 7 ' NJl,
Ich habe noch nie mit Web Forms gesehen.
EDIT:
Also habe ich einige Tests heute und fand einige interessante Sachen. Zunächst warf die App eine Nullreferenzausnahme (500). Zweitens sah der lokale Debugger den Fehler und warf sofort einen gelben Bildschirm des Todes. Der fehlerhafte Text wurde auf dem Staging-Server angezeigt, auf dem derzeit ein Release-Build ausgeführt wird.
Also im Grunde 500 Fehler auf Release-Builds mit customErrors auf meinem Staging-Server wirft CrAzY-Zeichen, anstatt auf dem gelben Bildschirm des Todes ordnungsgemäß zu versagen.
EDIT 2:
Wie pro @ Esteban Antwort, hier ist mein Komprimierungsfilter
Namespace Filters
Public Class CompressFilter : Inherits ActionFilterAttribute
''' <summary>
''' GZip compresses each Action when loaded. This satisfies YSlow and
''' PageSpeed.
''' </summary>
''' <param name="filterContext">The filter context.</param>
Public Overrides Sub OnActionExecuting(ByVal filterContext As ActionExecutingContext)
Dim request As HttpRequestBase = filterContext.HttpContext.Request
Dim acceptEncoding As String = request.Headers("Accept-Encoding")
If String.IsNullOrEmpty(acceptEncoding) Then
Return
End If
acceptEncoding = acceptEncoding.ToUpperInvariant()
Dim response As HttpResponseBase = filterContext.HttpContext.Response
If acceptEncoding.Contains("GZIP") Then
response.AppendHeader("Content-encoding", "gzip")
response.Filter = New GZipStream(response.Filter, CompressionMode.Compress)
ElseIf acceptEncoding.Contains("DEFLATE") Then
response.AppendHeader("Content-encoding", "deflate")
response.Filter = New DeflateStream(response.Filter, CompressionMode.Compress)
End If
End Sub
End Class
End Namespace
ich auf jedem Controller über eine Basissteuerung diese Filter global einstellen. Die Seite läuft gut, wenn es keine anderen 500 Fehler gibt, aber wenn ich einen 500-Fehler-Blick habe, ist es hässlicher Kopf, ich bekomme die funky Zeichen.
Auch manchmal habe ich keinen Fehler auf meinem Entwicklungsserver, aber es gibt einen auf dem Staging-Server.Dies geschah kürzlich, als ich nicht die aktualisierte Bibliothek auf dem Staging-Server hatte, aber sie war auf meinem Entwicklungscomputer vorhanden. Ich kann die Fehler im Ereignisprotokoll sehen, aber ich kann es nicht auf der Webseite sehen ... auch wenn ich benutzerdefinierte Fehler auf Off
setze.
EDIT 3:
Ok, so jetzt haben wir entdeckt, dass dieser Fehler kommt, weil mein <CompressionFilter()>
nicht den Strom dekomprimieren, wenn ein 500-Fehler ausgelöst wird. Ich muss herausfinden, wie ich meine Ausgabe dekomprimieren kann, egal was passiert.
whoooooah .... mein Gehirn hemorrhaging !! – RPM1984
deins und meins beide. –
ist es speziell für eine Route? Machst du irgendeine manuelle Antwort? Schreib Sachen? –