ASP.Net-Web-API-Hilfeseite Bereich, der eine leere Ausgabe zurückgibt

8

Ich habe eine bereits bestehende MVC-App, der ich Web-API und Web API Self Documentation mit Nuget hinzugefügt habe. Während die Web-API-Controller einwandfrei funktionieren (gültige Antworten auf HTTP-Anfragen zurückgeben), findet der Help-Controller keine Web-API-Methoden zum Dokumentieren.

In der Help-Controller-Indexaktion "Configuration.Services.GetApiExplorer (). ApiDescriptions" wird mit 0 Ergebnissen zurückgegeben.

Was hat ApiDescriptions befüllt und gibt es irgendwelche Konfigurationseinstellungen, die ich einstellen muss, um meine API für Dokumentationen verfügbar zu machen?

Der Hilfebereich ist ein separater Bereich vom Rest meiner Anwendung. Führt das dazu, dass die Controller meine Controller nicht finden? Außerdem habe ich dem HelpController selbst eine Hilfe hinzugefügt, die noch keine API-Beschreibungen ergeben hat.

Ich habe auch ein spezielles Routing für meine API-Controller, daher bin ich mir nicht sicher, ob das relevant ist.

    
Adam Levitt 16.10.2013, 20:59
quelle

4 Antworten

7

Nach etwas mehr Suche fand ich diesen Beitrag das bezieht sich auch auf diesen Beitrag

Wie bereits im ersten Beitrag erwähnt, ist Glimpse der Culplit, diese Problemumgehung löste das Problem für mich:

%Vor%

Dies ist ebenfalls ein bekanntes Problem und die Problemumgehung wird in diesem Glimpse GitHub-Problem beschrieben.

    
FRoZeN 17.10.2013 13:34
quelle
2

Ich habe das gleiche Problem und ich benutze Glimpse nicht und ich löse das Problem so:

Im Dateikommando ProjectName\Areas\HelpPage\Controllers\HelpController.cs wird der Konstruktor da nicht impliziter Konstruktor aufgerufen. public HelpController() : this(GlobalConfiguration.Configuration) default heißt Konstruktor mit dem Parameter public HelpController(HttpConfiguration config) und diese Initialisierung der Eigenschaft Configuration ist inconect. Und Sie können dieses Problem so lösen:

Lösung 1: Kommentar / Entfernen Sie die Konstruktoren.

%Vor%

Lösung 2: Fügen Sie den Standardkonstruktor hinzu, indem Sie dieses Attribut [InjectionConstructor] hinzufügen.

%Vor%

Und Problem gelöst.

    
TotPeRo 25.05.2014 17:45
quelle
1

Ich konnte das lösen, indem ich GlobalConfiguration.Configure (WebApiConfig.Register); in meiner Application_Start () -Methode hinzufüge. Da meine Anwendung OWIN verwendet, registrierte ich meine APIs nur in Startup.Configuration (IAppBuilder app) .

    
kdubau 09.11.2015 19:05
quelle
0

Nach der Installation des Hilfepages-Pakets von NuGet package manager - Navigiere zu WebApplication1\Areas\HelpPage\App_Start\HelpPageConfig.cs und entferne die Zeile unter

%Vor%

Fügen Sie auch App_Data/XmlDocument.xml zu WebApplication & gt hinzu; Eigenschaften & gt; Bauen & gt; Überprüfen Sie die XML-Dokumentationsdatei

    
Akshay Mishra 15.08.2017 12:25
quelle