Ich verwende ASP.NET Preview 5 (wird bald auf Beta aktualisiert) mit LINQ2SQL auf meinem kürzlich kleine Webapp gestartet .
Ich war so stolz auf meine Arbeit, bis Silverlight.net sie auf der ersten Seite vorstellte und sie eine mehr als bescheidene Anzahl von Besuchern erhielt.
Aus irgendeinem Grund erhalten Benutzer manchmal die Meldung "Specified cast invalid" von LINQ2SQL - dies liegt daran, dass nicht authentifizierte Benutzer als "Guest"-Benutzer behandelt werden und der Controller bei jedem Treffer Informationen über den Benutzer "Guest" lädt.
Auf der ersten Seite befindet sich oben ein "Willkommen [BENUTZERNAME]", das sich leicht mit Donut-Caching .
Unten in der Mitte gibt es jedoch einen "Was ist Dudlers.com"-Block, der nur unauthentifizierten Benutzern angezeigt werden sollte, und einen weiteren "Über Sie"-Block, der nur authentifizierten Benutzern angezeigt werden sollte. Diese Blöcke sind zu kompliziert, um mit Donut Caching zwischengespeichert zu werden; sie sind viel zu unterschiedlich, es würde sehr unübersichtlich werden.
Ich möchte die erste in Abhängigkeit vom Authentifizierungsstatus des Benutzers zwischenspeichern. So nicht authentifizierte Benutzer (unnötig zu sagen, die Mehrheit) erhalten die "Gast" gecachte Seite, und andere authentifizierte Benutzer werden eine frische nicht gecachte Seite angezeigt.
Gibt es eine Option, um die Zwischenspeicherung nach Authentifizierung zu variieren? [OutputCache(VaryBy = Authentifizierung)]
Oder gibt es eine andere nicht-ASP.NET MVC-Lösung? (vielleicht Tuning MS SQL)
Ich hoffe, meine Frage ist klar. Ich verwende Windows 2003 und MS SQL 2005 Express auf demselben dedizierten Server.
Ich danke Ihnen!