Eine Route mit dem Namen 'DefaultApi' befindet sich bereits in der Routensammlung

7

Diese Frage scheint vielleicht doppelt zu sein, aber das ist etwas anders. Bei allen anderen Fragen in SO hatte ich festgestellt, dass sie mehrere Routen registriert haben. aber in meinem Fall habe ich nur eine Route.

Ich erstelle ASP.net Webapi (Framework 4.5) und habe nur eine Route in der Methode RegisterRoutes () -

%Vor%

Warum wirft es dann Fehler?

%Vor%     
Anil Purswani 05.12.2013, 06:45
quelle

5 Antworten

2

Gut, ich habe es anhand der Antwort von user3038092 gelöst. Anstatt es in der Routensammlung hinzuzufügen, habe ich es in HttpConfiguration

hinzugefügt %Vor%

Und es hat funktioniert.

    
Anil Purswani 05.12.2013, 07:30
quelle
21

Ich hatte ein ähnliches Problem mit dem Hinzufügen einer Route DefaultApi . Obwohl die genaue 'zusätzliche Details' Nachricht in meinem ArgumentException Stack Trace war:

%Vor%

Ich habe natürlich darauf geachtet, dass ich die DefaultApi route nur einmal hinzufüge, aber am Ende habe ich bemerkt, dass ich in Global.asax s Application_Start method zweimal WebApiConfig.Register(..) aufgerufen habe, allerdings im folgenden - nicht sofort offensichtlicher Weg:

%Vor%

Ein weiterer ernster Fall von Copypasteriten! Ich habe einfach die WebApiConfig.Register(..) -Linie entfernt und dadurch mein Problem behoben.

(Ich verwende WEB API 2.0 / .NET 5)

    
Bart 08.05.2014 08:44
quelle
9

URSACHE: Umbenennen von Namespaces, ohne zugehörige Bin- und Ausgabedateien zu entfernen.

LÖSUNG: Löschen Sie die Ordner bin und obj manuell aus dem Ausgabeverzeichnis. (Das Reinigen der Lösung ist nicht genug, einige problematische Restdateien bleiben bestehen, die dieses Problem verursachen.)

... das war sowieso meine Erfahrung.

    
neocortex 25.07.2014 20:15
quelle
1

Wenn Sie eine MVC4- oder MVC5-Anwendung verwenden. Dann legen Sie Ihre Routenkonfiguration in

WebApiConfig.cs und

Überprüfen Sie außerdem, dass der Routenname in beiden Dateien eindeutig sein muss, z. B. RouteConfig.cs und WebApiConfig.cs

    
Nilesh 05.12.2013 07:09
quelle
0

Ich sehe, dass Sie den Controller aufrufen, aber Sie geben den Controller-Namen nicht so:

%Vor%

bedeutet, dass Sie HomeContrller für die Indexansicht registrieren,

    
trai bui 05.12.2013 07:15
quelle