Meine Panik-Migration

ASP.NET Web API 2

In meinem derzeitigen Projekt verwende ich Microsofts Web API in der Version 2,- bereits seit der Beta.  Die aktuellste Version kann per NuGet installiert werden:

PM> Install-Package Microsoft.AspNet.WebApi -Pre

Außerdem nutze ich die Web API Help Pages, um für meine Web API eine automatische Dokumentation zu generieren.

PM> Install-Package Microsoft.AspNet.WebApi.HelpPage -Pre

Heute stand das Update auf den kürzlich veröffentlichten Release Candidate 1 der Web API an. Das bedeutet auch, dass ich die Help Pages aktualisieren musste, damit diese mit der der Web API 2 kompatibel bleiben.
Leider hat die Aktualisierung bei mir dazu geführt, dass meine komplette Web-Anwendung nicht mehr funktionierte.

Fehler des Webservers

[A]System.Web.WebPages.Razor.Configuration.HostSection kann nicht in [B]System.Web.WebPages.Razor.Configuration.HostSection umgewandelt werden. Der Typ “A” stammt von der “System.Web.WebPages.Razor, Version=2.0.0.0

Die Ursache des Problems besteht darin, dass bei der Aktualisierung der Help Pages auch die Version 3 (vormals Version 2) der Razor-Engine installiert wird.
Nun existieren 2 Razor-Engine-Versionen im Web-Projekt.

Grund

Da nur die web.config der Help-Pages auf die neue Version der Razor-Engine angepasst wird und nicht jene der Web-Anwendung, führt dies zu Konflikten, sobald die Razor-Views durch den Web-Server erstellt werden.

Fix

Folgende Anpassung müssen in der web.config aktualisieren, sodass anwendungsweit Razor 3.0 verwendet wird und der Fehler behoben wird.

1. In der sectionGroup für Razor muss die Version 3.0.0.0 für Razor eingetragen werden.
2. Die Version der RazorHostFactory muss auf Version 5.0.0.0 gesetzt werden.

Aktualisierung der web.config bei Update der Razor Engine

Nach den Anpassungen sollte alles wieder funktionieren.

Wenn ihr weitere Probleme ferststellt, würde ich mich freuen davon zu hören. Auch über Vorschläge wie solche Konfigurationkonflikte vermieden werden können, sind sehr willkommen.

Beste Grüße aus Leipzig
Gregor

Gregor

Gregor Woiwode ist Angestellter der heco GmbH, wo er als Sofwareentwickler und Trainer tätig ist. Sein Fokus liegt in der Erstellung von Webportalen mit dem .NET- und Angular-Framework. Von 2007 bis 2010 studierte er Telekommunikationsinformatik an der Hochschule für Telekommunikation in Leipzig und schloss den Studiengang als Bachelor of Engineering ab. Derzeit studiert er im Studiengang Wirtschaftsinformatik um die Auszeichnung Master of Science zu erhalten.

What do you think? Please leave a Comment below!