2009-08-08 4 views
0

Ich habe ein Stammverzeichnis auf einem Webserver, der mit einer Reihe von URLs verknüpft ist. Ich möchte das Application-Begin-Request-Ereignis einer global.asax-Datei verwenden, um Anforderungen an die Verzeichnisse umzuleiten, die den Inhalt der relevanten Websites enthalten. So in Pseudo-Code Begriffe so etwas wie diese -Ist es möglich, nur eine global.asax-Datei in einer asp.net-Anwendung zu haben?

Wenn URL.Contains ("www.somthing.com") umleiten Dann Benutzer in dem Verzeichnis x Wenn URL.Contains ("www.somthingelse.com") Dann Benutzer umleiten zu Verzeichnis y

Ich dachte, ich wäre in der Lage, dies zu erreichen, indem Sie einfach eine global.asax-Datei mit dem entsprechenden Code in das Web-Server-Stammverzeichnis (Ich möchte Komplikationen wie eine web.config-Datei als Inhalt zu vermeiden wirkt sich auf andere Anwendungen aus, die ich in Unterverzeichnissen habe).

Leider scheint dieser Ansatz nicht zu funktionieren, da das Anwendungsstartanforderungsereignis anscheinend nicht ausgelöst wird. Ich habe das Problem umgehen, indem Sie eine default.aspx-Datei hinzufügen und es zum Standarddokument für das Stammverzeichnis machen. Dies scheint zu funktionieren, ich nehme an, dies ist, weil asp.net die default.aspx-Datei kompiliert und wiederum die global.asax-Datei kompiliert, die die Ereignisse ermöglicht, zu feuern?

Ist meine Problemumgehung der beste Weg, um das zu erreichen, was ich tun muss, oder gibt es eine einfachere Möglichkeit, die global.asax-Ereignisse mit einer einzigen Datei auszulösen?

Antwort

2

Klingt, als ob Sie eine Host-Header-basierte Umleitung suchen.

Sie können dies erreichen, indem Sie Ihren ISA Server wie this oder Ihren IIS wie this konfigurieren.

+0

Danke für die Antwort. Der Web-Server ist auf Rabatt asp.net gehostet und ich glaube nicht, dass sie Zugriff auf Host-Header geben. Daher die gewundene Lösung! – ipr101

Verwandte Themen