Impossible d'obtenir les pages d'aide ASP.NET Web API 2 fonctionnant avec Owin
J'ai installé le package approprié pour le Web Api 2
Install-Package Microsoft.AspNet.WebApi.HelpPage -Pre
Mais la zone d'aide n'est pas mappé et est de retour 404 (Api Web fonctionne bien). Je suis l'aide de Microsoft.Owin.De l'hôte.SystemWeb en tant qu'hôte. Ci-dessous mon code de Démarrage.
public class Startup
{
public void Configuration(IAppBuilder app)
{
//Required for MVC areas new HttpConfiguration() doesn't work with MVC
var config = GlobalConfiguration.Configuration;
AreaRegistration.RegisterAllAreas();
WepApiStartup.Configure(config);
app.UseWebApi(config);
}
}
source d'informationauteur DalSoft
Vous devez vous connecter pour publier un commentaire.
GlobalConfiguration.Configuration web spécifiques de l'hôte HttpConfiguraiton, qui ne devrait être utilisé avec l'hébergeur scénario. L'utiliser avec OWIN hôte causer des problèmes inattendus.
Veuillez utiliser le code suivant à la place:
Remplacer tous les GlobalConfiguration.Configuration de Démarrage.HttpConfiguration dans le projet comprennent la page d'aide de fichiers.
Trouvé la solution après beaucoup de creusement ou de l'essai et de l'erreur. La question est bien décrit ici: http://aspnetwebstack.codeplex.com/discussions/453068
UseWebApi et UseHttpMessageHandler n'appelez pas à Côté OWIN middleware autres que pour la 404. Cela signifie que si vous utilisez UseWebApi c'est ça, la Prochaine n'est jamais appelée, par conséquent, vous ne pouvez pas l'utiliser avec n'importe quel autre middleware (Nancy ou Api Web pages d'Aide par exemple).
Grâce à @aliostad patch:
https://github.com/aliostad/CacheCow/blob/master/samples/UsingCacheCowWithNancyAndOwin/HttpMessageHandlerAdapterModified.cs#L43
Vous pouvez le faire fonctionner comme prévu. J'espère que l'équipe de fusion pull request pour ce que UseWebApi rompt le Owin les objectifs de la conception de l'OMI.
Mise À Jour Le 13 Février 2014
J'ai écrit un Owin extension de cette solution de contournement:
Mise À Jour Du 01 Juillet 2015
Vous pouvez également organiser les pages d'aide, à l'aide de WebApi au lieu de la MVC, ce qui est excellent pour l'auto hôte http://blogs.msdn.com/b/yaohuang1/archive/2012/12/20/making-asp-net-web-api-help-page-work-on-self-hosted-services.aspx
Mise À Jour Le 10 Septembre 2015
Pour les Api Web, j'ai essayé @le hongye-soleil de réponse, cela fonctionne aussi, suivre @gspatel dit en changeant HelpPageAreaRegistration.RegisterArea et la HelpController constructeur de la. Ma solution fonctionne aussi bien afin de choisir ce que l'on travaille le mieux pour votre situation.
Cependant, je suis encore en train de la question lors de l'utilisation de UseWebApi avec d'autres middleware et il n'est pas en invoquant Next() (qui semble ne se produire lorsque vous utilisez IIS n'est pas auto hôte). J'ai trouvé ma solution de cartographie de la voie et de les forcer à côté être invoquée est une solution valable pour tous les Owin middleware Nancy, Simple.Web etc.
Mise À Jour Le 13 Janvier 2016
J'ai développé Owin middleware pour générer le ASP.NET l'API Web pages d'Aide, nous le savons et l'amour qui résout complètement le problème. Mon blog explique le contexte de cette question en détail