ASP.NET MVC, Debugging von URL-Routings

Zurzeit arbeite ich einiges mit ASP.NET MVC 4 und erfahre dadurch die Höhen und Tiefen des URL-Routings über MapRoute-Aufrufe.

Dabei bin ich auf ein inzwischen auch schon einige Jahre altes kleines Tool gestoßen, dass mir hervorragend hilft, URL-Routing-Tabellen zu debuggen:

ASP.NET Routing Debugger

Das Tool, auch als NuGet-Paket “routedebugger” verfügbar, schreibt auf jede Seite in die Fußzeile, welche Routings es gibt und welches zutreffend für den Aufruf der Seite war.

Anders als im Artikel beschrieben, muss mit dem NuGet-Paket nichts mehr manuell konfiguriert werden, es ist alles automatisch konfiguriert, sobald Ihr das Paket installiert habt.

Steuern könnt Ihr die Ausgabe in der Fußzeile über einen appSettings-Schalter in der Web.Config-Datei:

Super gemacht und super einfach in der Anwendung.

Was mir jetzt noch fehlt, ist ein Debugger, der mir sagt, welche Route verwendet wird, beim Generieren von Links über (z.B.) @Url.Action oder @Html.ActionLink. Wobei es dort ja noch die expliziten Funktionen wie z.B. @Url.RouteUrl gibt, um gezielt eine Route für die Link-Generierung anzusprechen.

Fehlermeldung mit “DotNetOpenAuth.Core” in ASP.NET MVC beseitigen

Eine neue Website mit ASP.NET MVC 4, frisch auf einen Server publiziert, lieferte die Fehlermeldung:

Die Datei oder Assembly “DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246” oder eine Abhängigkeit davon wurde nicht gefunden. Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein. (Ausnahme von HRESULT: 0x80131040)

Im Englischen klingt das ungefähr so:

Could not load file or assembly ‘DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Nach viel Suchen, fand ich schließlich die Lösung:

Da ich dieses “DotNetOpenAuth.Core” via NuGet installiert hatte, wurde in meiner lokalen Web.config-Datei automatisch Einträge ergänzt. Diese Einträge haben im öffentlichen Web auf dem Webserver noch gefehlt.

Hier der komplette Ausschnitt:

Sobald ich das ergänzt hatte, war der Fehler weg.

Ankommende Suchanfragen:

  • Es wird angenommen dass der Assemblyverweis System Web Mvc Version=4 0 0 0 Culture=neutral PublicKeyToken=31bf3856ad364e35 mit System Web Mvc Version=4 0 0 1 Culture=neutral PublicKeyToken=31bf3856ad364e35 übereinstimmt
  • ist im aktuellen kONTEXt nicht vorhanden mvc
  • DotNetOpenAuth Core
  • manifest definition der assembly stimmt nicht mit dem assemblyverweis überein

Fehlermeldung “CS0103: Der Name ‘ViewBag’ ist im aktuellen Kontext nicht vorhanden” bei ASP.NET MVC 4 lösen

Heute habe ich bei einem neu deployten Projekt mit ASP.NET 4.5 und MVC 4 folgende Fehlermeldung erhalten:

CS0103: Der Name ‘ViewBag’ ist im aktuellen Kontext nicht vorhanden
CS0103: The name ‘ViewBag’ does not exist in the current context

Eine ähnliche Meldung lautet:

CS0103: Der Name ‘model’ ist im aktuellen Kontext nicht vorhanden
CS0103: The name ‘model’ does not exist in the current context

Lokal lief alles, auf dem Produktivserver kam die Fehlermeldung. Ich habe lange gesucht, bis ich die funktionierende Lösung gefunden habe.

Lösung

Die Lösung war im Endeffekt, dass es zwei Web.Config-Dateien gibt:

Diese im Views-Ordner hat bei mir gefehlt. Sobald ich diese hinzugefügt und entsprechend gefüllt hatte, hat alles funktioniert.

Ankommende Suchanfragen:

  • CS0103 C# Der Name comboBox1 ist im aktuellen Kontext nicht vorhanden
  • ist im aktuellen kONTEXt nicht vorhanden viewbag
  • Der Name ViewBag ist im aktuellen Kontext nicht vorhanden
  • CS0103: Der Name ViewBag ist im aktuellen Kontext nicht vorhanden
  • CS0103 lösung
  • CS0103 C# The name args does not exist in the current context
  • CS0103 C# Der Name WebClient ist im aktuellen Kontext nicht vorhanden
  • CS0103 C# Der Name webBrowser ist im aktuellen Kontext nicht vorhanden
  • CS0103 C# Der Name rule ist im aktuellen Kontext nicht vorhanden
  • CS0103 C# Der Name Resource ist im aktuellen Kontext nicht vorhanden
  • CS0103 C# Der Name openOrCreateDatabase ist im aktuellen Kontext nicht vorhanden
  • CS0103 C# Der Name masterPage ist im aktuellen Kontext nicht vorhanden
  • view aktueller kontext nicht vorhanden cache

CryptographicException bei Verwendung von Oracle.ManagedDataAccess lösen

Gestern hatte ein Kollege beim Aufsetzen einer Website ASP.NET MVC 4 auf einem IIS unter Windows Server 2008 R2 eine Fehlermeldung:

Zunächst war es eine Herausforderung, statt den “normalen” Oracle.DataAccess-Klassen die Oracle.ManagedDataAccess-Klassen zum Laufen zu bringen. Hier haben uns zwei Artikel geholfen:

Wir haben dann zum Lösen des eigentlichen Fehlers lange rumgesucht, viel ausprobiert und schließlich beim Weblog-Artikel “SOLVED: Windows Identity Foundation – “The system cannot find the file specified”” fündig geworden.

Die Lösung bestand dann schlicht darin, im Anwendungspool (App Pool) für die Anwendung die Option “Benutzerprofil laden” auf “True” zu stellen:

IIS App Pool - Benutzerprofil laden

Danach lief alles wie gewünscht.

Stellenangebot: Junior-.NET-Softwareentwickler (m/w)

Wir suchen sympathische Menschen, die gemeinsam in unserem Team etwas bewegen und sich selbst weiterentwickeln möchten.

Die Zeta Software GmbH entwickelt Produkte und Softwarelösungen für nationale und internationale Kunden.

Zur Unterstützung unseres Entwicklungs-Teams suchen wir ab sofort Absolventen oder Berufseinsteiger aus den Bereichen Informatik / Wirtschaftsinformatik für unseren Standort in 73037 Göppingen bei Stuttgart.

Ihre Aufgaben:

  • Sie konzipieren moderne Web- und Mobil-Anwendungen selbst sowie im Dialog mit den Fachabteilungen unserer Kunden
  • Sie erweitern gemeinsam im Team unsere bestehenden Lösungen um neue Funktionen und wirken wesentlich bei der Weiterentwicklung und dem Erfolg unserer Software mit

Wir bieten Ihnen:

  • Erstklassige und individuelle Einarbeitung: Ihre Kollegen stehen Ihnen jederzeit unterstützend zur Seite
  • Arbeit an Projekten und Produkten, die von vielen Anwendern eingesetzt werden
  • Attraktiver Arbeitsplatz mit modernster Ausstattung
  • Ein sympathisches und hochmotiviertes Team, das einen respekt- und vertrauensvollen Umgang pflegt
  • Viel Gestaltungsspielraum und die Möglichkeit neue Technologien kennen zu lernen

Was Sie mitbringen:

  • Abgeschlossenes Hochschulstudium der Informatik oder einer themenverwandten Fachrichtung oder eine Ausbildung zum Informatiker
  • Kenntnisse in den Programmiersprachen, C++, C#, Java, Objective-C oder PHP bzw. Kenntnisse in der Entwicklung von Webanwendungen oder mobilen Anwendungen
  • Idealerweise erste praktische Erfahrungen durch Praktika oder private Projekte
  • Strukturierte und anwenderorientierte Arbeitsweise, Lernbereitschaft und Teamgeist

Bitte senden Sie uns Ihre Bewerbungsunterlagen inklusive Angabe Ihres frühestmöglichen Eintrittstermins und Ihrer Gehaltsvorstellung per E-Mail an jobs@zeta-software.de

Zeta Software GmbH
Manfred-Wörner-Straße 115
73037 Göppingen
Baden-Württemberg
Deutschland