ASP.NET > Fehlermeldungen
Unbekanntes Servertag / unknown server tag
Fehlermeldungen:
Serverfehler in der Anwendung /.
Parserfehler
Beschreibung: Fehler beim Verarbeiten einer Resource, die für diese Anforderung erforderlich
ist. Überprüfen Sie folgende Fehlerinformationen und ändern Sie die
Quelldatei entsprechend.
Parserfehlermeldung:
Unbekanntes Servertag xyz:abc.
Server Error in '/' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Unknown server tag 'xyz:abc'.
Dieser Fehler tritt auf, wenn die Kombination aus <tagprefix>:<tagname> nicht aufgelöst werden kann - d. h. entweder ist bereits das Tagprefix nicht bekannt oder innerhalb des <tagprefix> ist das Control <tagname> nicht bekannt.
Das passiert, wenn
- Es keine entsprechendes Control gibt ;-)
- Die zugehörige Registrierung der Assembly auf der betroffenen Seite fehlt (falls sich das zugehörige Control in einer Assembly befindet):
<%@ Register tagPrefix="<tagprefix>" namespace="<namespace innerhalb der assembly>" assembly="<assembly name, ggf. Version und public key>" %>
- Alternativ die Registrierung der Assembly in der web.config für alle Seiten fehlt (falls sich das zugehörige Control in einer Assembly befindet):
<system.web><pages><controls>
<add tagPrefix="xyz" namespace="<namespace innerhalb der assembly>" assembly="<assembly name, ggf. Version und public key>" />
</controls></pages></system.web>
- Die Registrierung des Usercontrols auf der betroffenen Seite fehlt (falls es sich um ein user control handelt):
<%@ Register Src="~/<pfad und name des user controls>.ascx" TagPrefix="<tagprefix>" TagName="<tagname>" %>
Leider kommt es u. U. vor, dass sich das Projekt kompilieren lässt, die Registrierung korrekt ist und es trotzdem zu diesem Fehler kommt:
Wenn sich der Namespace des Controls in der Assembly geändert hat, aber Tagprefix und Tagname nicht geändert haben, dann wird nicht automatisch die Designer-Datei geändert. Das müsste - eigentlich - zu einer Fehlermeldung führen, aber leider es ist vermutlich noch eine "alte" Version der Assembly temporär gecached.
Lösung: Auf der betroffenen Seite "Page.aspx", die Designer-Seite e "Page.designer.cs" öffnen und bei den betroffenen Controls prüfen, ob der Namespace stimmt (und ggf. manuell korrigieren). Alternativ funktioniert vermutlich auch das Ausschneiden-Speichern-Einfügen des entsprechenden Controls, so dass sich die Designer-Seite "automatisch" korrigiert.
Leider kommt diese Meldung "Unbekanntes Servertag" bei Resharper u. U. vor, wenn die .NET-Installation fehlerhaft ist. Auch die Re-Installation von Resharper und Stop / Resume von Resharper haben dann keinen Erfolg. Resharper erkennt dann keine .NET namespaces mehr und schlägt vor, diese auf der Seite zu importieren (namespace import). Das Einfügen der namespaces auf web.config-Level wäre dann die entsprechende Alternative. Dies alles obwohl sich das Projekt fehlerfrei kompilieren und auch starten lässt.
Lösung: Re-Installation des .NET Frameworks - in unserem Fall die Re-Installation des .NET Frameworks 4.6.2 - danach wurden die Namespaces System.Web und System.Web.Extensions wieder automatisch erkannt.