none
Verzweifel an CustomErrors (für alte .asp & .html-Seiten) RRS feed

  • Frage

  • Hi,

    es sind wieder die vermeintlichen einfachen Sachen die mir zum Wahnsinn treiben :-)

    Also: Ich bin gerade dabei nach und nach Projekte von ASP Classic nach ASP.NET 3.5 zu portieren.
    Gestern habe ich 2 Testseiten/Domains umgestellt um mögliche Bugs zu finden. Dabei ist mir aufgefallen das natürlich die ganzen Crawler von Suchmaschinen auf die alten .html- und .asp-Seiten zugreifen möchten. Die gibt es jetzt natürlich nicht mehr.

    Damit wenigstens eine Aussagefähige Fehlermeldung kommt habe ich mir gedacht ich mache einen schönen CustomError. Naja, der funktioniert auch, aber nur bei Dateiendungen mit .aspx

    Bei .asp und .html komme ich weder an der global.asax vorbei noch sonst wo, ich bekomme eine Standardfehlermeldung vom IIS6 (Windows Server 2003).

    Das komische ist nur von VisualStudio mit dem lokalen Development Server wird jetzte .html und .asp Anfrage brav an meine Fehlerseite weitergeleitet. Aber sobald ich das Projekt auf dem Server ablege kommt immer der Standardfehler vom IIS. Ich habe auch mal im IIS6 unter CustomError für dieses Web nachgesehen und probiert was passiert wenn ich 404b.htm rausnehme. Auch habe ich unter dem Reiter "Home Directory" nachgesehen was bei der Dateiendung .asp passieren soll und habe es temporär rausgenommen. Nichts.

    Hat einer eine Idee wieso ich es nicht gebacken bekomme das eine CustomError-Page verwendet wird, wenn noch alte Seiten abgerufen werden?!

    Danke im voraus
    Gruß
    Andy

    Sonntag, 22. August 2010 19:24

Antworten

  • Hallo Andy,

    Damit wenigstens eine Aussagefähige Fehlermeldung kommt habe ich mir gedacht ich mache einen schönen CustomError. Naja, der funktioniert auch, aber nur bei Dateiendungen mit .aspx

    Bei .asp und .html komme ich weder an der global.asax vorbei noch sonst wo, ich bekomme eine Standardfehlermeldung vom IIS6 (Windows Server 2003).

    das ist normal, da IIS die Endungen .asp und .htm(l) eben nicht mit ASP.NET verbindet. Das kann man aber einstellen.

    IIS MMC
     -> <Website> (oder, wenns global sein soll, den Node Websites auswählen)
       -> Eigenschaften
         -> Reiter "Basisverzeichnis"
           -> Button "Konfiguration"
             -> Reiter "Zuordnungen"

    Dort kannst Du dann die Endungen zur ASP.NET Engine zuweisen (am besten den Eintrag für .aspx nehmen und die Einstellungen genau so für die anderen Endungen anlegen)

    Das komische ist nur von VisualStudio mit dem lokalen Development Server wird jetzte .html und .asp Anfrage brav an meine Fehlerseite weitergeleitet. Aber sobald ich das Projekt auf dem Server ablege kommt immer der Standardfehler vom IIS.

    So komisch ist das nicht. Der Web Development Webserver krallt sich jeglichen Request, also auch auf .htm, .css, .jpg, ... Der IIS macht das verständlicherweise nicht.

    Das ist einer der vielen Gründe, warum man meist besser gar nicht mit dem Web Development Webserver entwickeln sollte, sondern lieber gleich mit einem lokal installierten IIS.



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert VBAndy Montag, 23. August 2010 09:04
    Montag, 23. August 2010 06:30
    Moderator
  • Hallo Andy,
    Was könnte ich jetzt übersehen haben?!

    evtl. die Checkbox bei "Verifizieren, dass Datei existiert"? Diese sollte deaktiviert sein.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert VBAndy Montag, 23. August 2010 09:04
    Montag, 23. August 2010 08:39
    Moderator

Alle Antworten

  • Hallo Andy,

    Damit wenigstens eine Aussagefähige Fehlermeldung kommt habe ich mir gedacht ich mache einen schönen CustomError. Naja, der funktioniert auch, aber nur bei Dateiendungen mit .aspx

    Bei .asp und .html komme ich weder an der global.asax vorbei noch sonst wo, ich bekomme eine Standardfehlermeldung vom IIS6 (Windows Server 2003).

    das ist normal, da IIS die Endungen .asp und .htm(l) eben nicht mit ASP.NET verbindet. Das kann man aber einstellen.

    IIS MMC
     -> <Website> (oder, wenns global sein soll, den Node Websites auswählen)
       -> Eigenschaften
         -> Reiter "Basisverzeichnis"
           -> Button "Konfiguration"
             -> Reiter "Zuordnungen"

    Dort kannst Du dann die Endungen zur ASP.NET Engine zuweisen (am besten den Eintrag für .aspx nehmen und die Einstellungen genau so für die anderen Endungen anlegen)

    Das komische ist nur von VisualStudio mit dem lokalen Development Server wird jetzte .html und .asp Anfrage brav an meine Fehlerseite weitergeleitet. Aber sobald ich das Projekt auf dem Server ablege kommt immer der Standardfehler vom IIS.

    So komisch ist das nicht. Der Web Development Webserver krallt sich jeglichen Request, also auch auf .htm, .css, .jpg, ... Der IIS macht das verständlicherweise nicht.

    Das ist einer der vielen Gründe, warum man meist besser gar nicht mit dem Web Development Webserver entwickeln sollte, sondern lieber gleich mit einem lokal installierten IIS.



    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert VBAndy Montag, 23. August 2010 09:04
    Montag, 23. August 2010 06:30
    Moderator
  • Hallo Stefan,

    das mit der Zuordnung war wirklich mein aller erster Gedanke gewesen und hatte ich auch ausprobiert. Auch JETZT habe ich es nochmal ausporbiert und sicherheitshalber einen iisreset gemacht. Nichts. Der IIS6 wirft mir weiterhin bei den Dateiendungen .asp und .html seine Error404-Page aus statt den Request an das Web bzw. an die aspnet_isapi.dll weiter zu geben.

    Das der IIS6 die Fehlerseite auswirft kann ich daran erkennen wenn ich unter CustomErrors für 404 auf Default stelle. Also reicht der IIS die Anfrage (meines erachtens) nicht weiter.

    Was könnte ich jetzt übersehen haben?!

    Gruß
    Andy

    Montag, 23. August 2010 07:52
  • Hallo Andy,
    Was könnte ich jetzt übersehen haben?!

    evtl. die Checkbox bei "Verifizieren, dass Datei existiert"? Diese sollte deaktiviert sein.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    • Als Antwort markiert VBAndy Montag, 23. August 2010 09:04
    Montag, 23. August 2010 08:39
    Moderator
  • evtl. die Checkbox bei "Verifizieren, dass Datei existiert"? Diese sollte deaktiviert sein.


     

    Ach... jaaaa.... ICH hab bei "Verfiy that file exists" etwas falsch interpretiert.
    Ich dachte er überprüft ob die ISAPI-DLL auch wirklich vorhanden ist um bei jedem Script-Aufruf ein "File not Found" der eventuell nicht vorhanden ISAPI-Dll zu vermeiden.

    Danke, jetzt funktioniert es :-)
    Hast mir mal wieder perfekt geholfen! :-)

    Gruß
    Andy

    Montag, 23. August 2010 09:09