BlogEngine.NET – VS2010 – Master Page error beim öffnen der default.aspx

Beim Versuch die Datei default.aspx im Design Mode aus Visual Studio 2010 heraus zu öffnen wurde die folgendende Fehlermeldung ausgegeben:

Dieses ist nicht unbedingt ein BlogEngine spezifisches Problem und kann auch mit anderen Projekten auftreten.

Das Problem tritt auf, da in der verwendeten Basisklasse “BlogBasePage” die Methode  OnPreInit vom PreInit Event aufgerufen wird. In dieser Methode wird eine Masterpage benötigt, da diese dort an die Basisklasse.MasterPageFile zugewiesen wird.

Siehe nachfolgenden Code Auszug:

this.MasterPageFile = string.Format("{0}themes/{1}/site.master", Utils.RelativeWebRoot, this.theme);

Nun gibt es die Möglichkeit direkt in der web.config eine default masterpage anzugeben, und genau dies ist auch die Lösung unseres Problems:

Der Eintrag muss wird in der Region “pages” der web.config vorgenommen.
Dieser Bereich der web.config sieht vor der Änderung wie folgt aus:

<pages
	enableSessionState="false"
	enableViewStateMac="true"
	enableEventValidation="true"
>

Nun gibt es die Möglichkeit über den Parameter masterPageFile in der web.config eine default Master Page anzugeben, und genau dies machen wir, indem wir den Eintrag in der web.config, wie folgt ändern:

<pages
	enableSessionState="false"
	enableViewStateMac="true"
	enableEventValidation="true"
	masterPageFile="~/themes/Standard/site.master"
>

Man beachte den neuen Parameter

masterPageFile=”~/themes/Standard/site.master”

Dieser setzt die Master Page aus dem Standard Theme als Default Master Page, welche dann in der Basisklasse BlogBasePage verwendet werden kann, so dass der hier beschriebene Fehler nicht mehr auftritt.

Man kann natürlich auch jede andere Master Page aus jedem beliebigen Theme verwenden. Am besten verwendet man die Master Page aus dem verwendeten Theme.

Und nachdem diese Einstellung in der web.config vorgenommen wurde, kann man die default.aspx ohne den hier beschriebenen Fehler öffnen.


Kick It auf dotnet-kicks.de

3 Gedanken zu “BlogEngine.NET – VS2010 – Master Page error beim öffnen der default.aspx

  1. Hallo HP,
    erstmal ein netter Workaround.
    Hast du nach diesem Workaround versucht, das eingestellte Theme über die Einstellungen im laufenden Blog zu wechseln? Würde mich interessieren, ob das nach dem Festlegen der MasterPage in der web.config immer noch geht.

    BTW. Ich habe den Design-Mode in VS schon so lange nicht mehr verwendet, dass ich gar nicht weis ob er überhaupt noch funktioniert ;-)

    Servus,
    Klaus

    • Hallo Klaus,
      ich bin auch nur aus versehen in den Design Modus gestolpert, aber ich hasse Fehlermeldungen :-) und daher….. #wegdamit

      Ich muss gestehen dass ich es nicht versucht hatte ob die Einstellung in der web.config, die Theme Umschaltung stört, das habe ich aber gerade getestet.
      Hat keine Auswirkung, läuft alles bestens.

      Beste Grüße
      HP

      • Dann ist das ein netter Fix, wenn die Anpassung in der lokalen web.config auf der Dev-Maschine eingepflegt wird. Für die web.config auf dem Server ist die Einstellung ja nicht nötig.
        Saubere Arbeit!

        Servus,
        Klaus

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>