2

Ich versuche, die ASP.NET Help Pages für die Ausführung in einem vorhandenen MVC-Projekt einzurichten, obwohl auf die Dokumentationsdatei von einem Web-API-Projekt in derselben Lösung verwiesen wird. Bei Convention werden die Hilfeseiten in der Web-API ausgeführt, die dokumentiert wird, in diesem Fall jedoch in einem MVC-Projekt für Geschwister.Web-API-Hilfeseiten laden keine Dokumentation XML

Das Web-API-Projekt gibt seine Dokumentations-XML-Datei in einem Ordner im MVC-Projekt aus.

Ich habe die Microsoft.AspNet.WebApi.HelpPage NuGet package im MVC-Projekt installiert. Dies erzeugt eine Klasse \Areas\HelpPage\App_Start\HelpPageConfig.cs, und in der Register Methode dieser Klasse habe ich den XmlDocumentationProvider den Pfad zur Dokumentationsdatei der Web-API übergeben.

Aber wenn ich die Seite lade, ist sie leer, abgesehen von einem Titel und einer Platzhalterbeschreibung.

Nach dem Debuggen der HelpController.Index Methode kann ich in der zurückgegebenen IApiExplorer, dass die _apiDescriptions sind leer.

Screenshot from Help Pages running inside MVC project

Allerdings, wenn ich die Hilfe-Seiten direkt in das Web-API-Projekt und debuggen die gleiche Methode zu installieren, kann ich sehen, dass die _apiDescriptions jetzt vorhanden sind.

Screenshot from Help Pages running inside Web API project

Kann mir jemand erklären, was das Web API-Projekt tut oder hat die das MVC-Projekt nicht konfiguriert nicht konfiguriert zu tun hat oder?

Antwort

3

Setzen Sie das einfach selbst auf, und ich glaube, ich stieß auf ein ähnliches Problem, wenn ich lese, was Sie richtig sagen.

Versuchen Sie Folgendes:

  1. Zum Areas \ Hilfeseite \ App_Start \ HelpPageConfig.cs. Rund um die Leitung 36, werden Sie sicherstellen möchten, dass Sie die Zeile wie unten unkommentiert:

//// Uncomment the following to use the documentation from XML documentation file. 
 
      config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/ApiDocumentation.xml")));
Und stellen Sie sicher, dass der Pfad korrekt ist. Ich habe meine XML-Datei zufällig in das App_Data-Verzeichnis gestellt.

  1. Gehen Sie zu Projekt => Eigenschaften => Erstellen. Stellen Sie unter Ausgabe sicher, dass das Feld "XML-Dokumentationsdatei" aktiviert ist, und zeigen Sie es auf App_Data \ ApiDocumentation.XML (vorausgesetzt, Sie haben es an der gleichen Stelle wie oben beschrieben.)
  2. Wenn ich mich richtig erinnere, musste ich sicherstellen Ich habe die .xml-Datei zum Projekt hinzugefügt - ich hatte einige Probleme, als ich versuchte, sie auf unserem Testserver bei der Arbeit zu veröffentlichen, und sie sagte, dass die Datei nicht gefunden wurde. Nach dem Build gehen Sie einfach zu App_Data, klicken Sie mit der rechten Maustaste auf den Ordner und vorhandenes Element hinzufügen. zu App_Data in Ihrem Dateisystem navigieren und die xML-Datei auswählen.

das wird sich hoffentlich Ihr Problem beheben!

1

ich bin nicht sicher, ob dies jemand helfen wird, die sonst acros stolpert s das hatte ich mit einer leeren Vorlage von VS angefangen und die Hilfedateien über das Nuget-Paket hinzugefügt.

Da es sich um eine leere Vorlage war, und ich hatte keine Bereiche eingerichtet, es wurde aus wird genannt und damit die folgenden von der global.asax

AreaRegistration.RegisterAllAreas(); 

Dies verhinderte die HelpPageConfig.Register fehlt, die XML-Dokumentation Anbieter wurde nie eingestellt.