500 Erreur lors de la configuration de Swagger dans l'application asp.net CORE / MVC 6
Je suis en train de configurer une base swagger doc API dans un asp .net CORE /MVC 6 projet et d'obtenir une erreur 500 à partir de l'arrogance de l'INTERFACE utilisateur:
500 : http://localhost:4405/swagger/v1/swagger.json
Mon démarrage de la classe a le code suivant:
using Swashbuckle.SwaggerGen;
using Swashbuckle.SwaggerGen.XmlComments;
using Swashbuckle.Application;
....
public void ConfigureServices(IServiceCollection services)
{
...
services.AddSwaggerGen();
services.ConfigureSwaggerDocument(options =>
{
options.SingleApiVersion(new Info
{
Version = "v1",
Title = "Blog Test Api",
Description = "A test API for this blogpost"
});
});
}
puis sous Configurer:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
....
app.UseSwaggerGen();
app.UseSwaggerUi();
....
}
Quand je compiler et exécuter le projet, l'INTERFACE utilisateur viendra quand je vais à swagger/UI/index.html mais le 500 erreur ci-dessus s'affiche. Quand je vais sur le swagger/v1/swagger.json lien, la console donne des erreur 500:
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Est-il de toute façon je peux comprendre la cause de racine de la 500 ou permettre supplémentaires de débogage dans swagger pour comprendre pourquoi c'est jeter cette erreur? Basé sur certains des tutoriels que j'ai regardé, seulement ce que j'ai dans le démarrage est nécessaire pour une implémentation de base. S'il vous plaît laissez-moi savoir si je peux fournir toute information supplémentaire.
EDIT: c'est pour la rc1, et peuvent ne pas être pertinents pour les nouveaux netcore 1.0 actuellement (6/29/2016)
source d'informationauteur CBerg
Vous devez vous connecter pour publier un commentaire.
Au départ, j'ai eu une erreur 500. Au plus profond de la stacktrace il dit:
Système.NotSupportedException: Unbounded HTTP verbes de trajectoire "api/hotels". Êtes-vous manque un HttpMethodAttribute?
Il s'est avéré qu'il me manquait un HttpGet attribut pour l'un de mes méthodes de l'api:
Tout d'abord, vous pouvez activer de développeur exception de la page en ajoutant
app.UseDeveloperExceptionPage();
sur votre Configurer() afin de mieux voir ce qui est à l'origine. Jetez un oeil iciDans mon cas, le problème est que j'ai installer aussi
Microsoft.AspNetCore.StaticFiles
nuget pour faire Swagger travail.Également essayer de désinstaller/réinstaller
Swashbuckle.AspNetCore
nuget.Aussi si je peux ajouter, le style mis en place ne l'aime pas quand vous la route au niveau de la racine de vos contrôleurs. Par exemple:
Ne faites pas ceci:
Ce faire:
Il m'a fallu un certain temps pour comprendre que la raison pour laquelle j'ai été prise en erreur interne du serveur est à cause de ce problème de routage. Espérons que cela aide quelqu'un!
J'ai eu cette erreur lors de l'un de mes fonctions était marqué comme
public
mais n'était pas censé être un service web qui pourrait être appelée directement.La modification de la fonction de
private
fait disparaître l'erreur.(Je souhaite Swagger serait en fait rapport de la nom de la fonction qui a causé ce problème, plutôt que de simplement se plaindre qu'il ne pouvait plus trouver de "../swagger/v1/swagger.json" fichier... qui n'est pas particulièrement utile).
Donner un coup d'oeil à ce projet.
https://github.com/domaindrivendev/Ahoy/tree/master/test/WebSites/Basic
Ce repo est de Swashbuckles propriétaire, est une base ASP.NET 5 Exemple d'application, c'est vous aider à corriger configurer le vôtre middlewares (et de prendre soin sur les ordres d'eux, sa matière, par exemple, utiliser "app.UseSwaggerGen();app.UseSwaggerUi(); après l'application.UseMvc();)
Pour activer la journalisation dans votre application reposant donner un coup d'oeil à:
https://docs.asp.net/en/latest/fundamentals/logging.html?highlight=logging
(le journal sera générée à l'intérieur "wwwroot" dossier
De l'installation pour Swagger est qui varie considérablement d'une version à l'autre. Cette réponse est pour Swashbuckle 6.0.0-beta9 et Asp.Net Core 1.0. À l'intérieur de la ConfigureServices méthode de Démarrage.cs, vous devez ajouter -
Ensuite dans la configuration de la méthode que vous devez ajouter -
Assurez-vous de référencement de Démarrage.cs -
à l'aide de Swashbuckle.SwaggerGen.Générateur;
Mon projet.fichier json ressemble -