Für die letzten 2 Wochen habe ich einen Fall, dass ich nicht herausfinden kann, vielleicht haben Sie Jungs bereits durch das gleiche Problem oder hören / lesen darüber und kann mir helfen.
Ich habe ein ASP.NET-Projekt, das ich auf meiner Maschine und anderen Maschinen gut laufen, jedes Mal, wenn ich versuche, die QueryString zu temperieren, bekomme ich einen Fehler, der von der System.Exception ausgelöst wird
Problem ist, in diesem bestimmten Computer (witch ist in Holland) die Application_Error nie fängt die Exception, es speichert die Exception-Nachricht in das Protokoll (wie in meiner Anwendung getan werden sollte), aber es nicht "brechen" die Web-Anwendung ... es einfach weiter!
Wie und wodurch kann dies möglich werden?
als Beispiel, dies ist mein Webseite (HttpCache kann nicht auf diese Weise aufgerufen werden, sondern ist nur zu zeigen, dass ich das Web.HttpCache-Objekt verwende)
if( Request.QueryString["user"] != HttpCache["MYAPP-user"] ) {
myApp.DebugWrite("User was tempered.");
throw System.Exception("User was tempered.");
}
und in global.asax Ich habe
...
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
if (Server.GetLastError() != null)
{
Exception objErr = Server.GetLastError().GetBaseException();
String url = Request.Url.ToString();
String msg = objErr.Message;
String trc = objErr.StackTrace.ToString();
Response.Clear();
StringBuilder html = new StringBuilder();
// fill up html with html code in order to present a nice message
Response.Write(html.ToString());
Server.ClearError();
Response.Flush();
Response.End();
}
}
...
auf meinen Testrechnern erhalte ich immer die html-Datei mit der Fehlermeldung sowie die Meldung im Protokoll... auf diesem speziellen Rechner sehe ich nur den Fehler im Protokoll, aber die Anwendung fortsetzen !!!
web.config ist genau die gleiche wie in allen Maschinen und diese Webanwendung läuft auf .NET 2.0
Was kann das sein?