2009-06-02 14 views
0

Ich habe versucht, die URL mit allen Arten von Methoden von HttpRequest anzuzeigen, habe ich auch VirtualPathUtility-Objekt versucht, aber ich konnte nie den versteckten Teil "default.aspx" anzeigen der Standardwert ... Welche Methode oder Eigenschaft ruft dieses Segment der URL ab?Abrufen des versteckten default.aspx-Segments einer URL

Grund, ich bin so nah an der Erstellung eines 404 auf Anwendungsebene, die alle 404s, sogar HTML-Seiten, mit File.Exist() auf dem zugeordneten Pfad der URL abfängt, das leider nicht funktioniert Standardseite.

Ich habe einige Artikel gesehen, die versuchen, das Gegenteil zu tun, default.aspx zu entfernen, wenn es auftritt, das ist hier nicht der Fall.

Edit: hier ist das, was ich versuche:

string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString(); 
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath)); 
if (!newUrl) throw new HttpException(404,"page not found"); 

jetzt sehen Sie, wenn die Seite localhost/lexus/default.aspx, es ohne Fehler funktioniert gut, aber wenn ich eintippen Die Adresse http://localhost/lexus/, der Fehler wird ausgelöst, weil, wenn Sie versuchen, den FullOriginalPath auszugeben, hat es nicht "default.aspx" Teil davon, also Exists gibt false zurück! Haben Sie eine bessere Möglichkeit, die Gültigkeit von physischen Dateien zu überprüfen?

Antwort

1

Ich glaube nicht, dass dies überhaupt möglich ist, so verließ ich mich auf IIS7.0 Rewrite-Funktion zu forc e die default.aspx zu allen Zeiten ..

0

Ich bin nicht sicher, was Sie mit „verborgenen Teil“ aber haben Sie versucht, ...

Request.Url.ToString() 
0

Ye für die AppRelativeCurrentExecutionFilePath Property auf dem HttpRequest Objekt suchen werden: http://msdn.microsoft.com/en-us/library/system.web.httprequest.apprelativecurrentexecutionfilepath.aspx

Wenn jemand eine Anfrage an http://yourdomain.com/ der Wert AppRelativeCurrentExecutionFilePath wäre "~/default.aspx"

+0

, die nicht funktioniert entweder :(es gibt ~ /, und bei der Überprüfung für File.Exists, gibt es false zurück! Gibt es eine IIS-Einstellung fehlt? – Ayyash

+0

Verstehe ich das richtig, was Sie wollen, ist die Fähigkeit, den physischen Dateipfad für die angeforderte Datei zu bekommen? Wo die angeforderte URL könnte etwas wie "http://mydomain.com/" und Sie würden erwarten, dass das Ergebnis "~/default.aspx"? –