2016-01-23 84 views
0

我想用Swagger和Web API一起使用。我只是使用随Visual Studio一起安装的ASP.NET 4.6模板中的“Azure API App”模板,其中包括Swashbuckle.CoreSwaggerConfig.cs。该API工作正常(我能成功地称呼它),但如果我尝试去“http://mybaseurl/swagger/”,我得到这个错误:Swagger给我HTTP错误403.14 - 禁止

HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.

好像扬鞭是没有得到加载或东西。其他人之前得到这个?我似乎无法解决这个问题。谢谢,请让我知道我是否可以提供更多细节。

这里是我的SwaggerConfig.cs是什么样子:

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] 

namespace With.Api 
{ 
    public class SwaggerConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      var thisAssembly = typeof(SwaggerConfig).Assembly; 

      config.EnableSwagger(c => 
      { 
       c.SingleApiVersion("v1", "With.Api"); 
      }) 
      .EnableSwaggerUi(); 
     } 
    } 
} 
+0

尝试启用'目录Browsing'在IIS本网站。 – Martin

+0

没有运气。该文件夹实际上并不存在,路由器应该将我路由到swagger-ui –

+0

您可以通过导航到swagger/docs或swagger/{version}/docs来获取json转储吗? –

回答

0

尝试用此URL,而不是http://mybaseurl/swagger/ui/indexhttp://mybaseurl/swagger/

+0

与之前相同的结果 –

+0

是否为网站启用了匿名身份验证? – Martin

+0

你的应用程序工作正常,除了Swagger? – Martin

2

我有同样的问题。当我将应用程序部署到Azure时它运行良好,但是当我在本地启动它时,Swagger不会像上面所述那样显示。 恢复到以前的版本我知道以前工作也没有帮助,所以它似乎与IIS快递有关。我不完全确定是什么导致了这个问题(我改变了一些与SSL相关的设置),但是当我删除.vs文件夹(其中包含applicationhost.config文件)并重新启动Visual Studio时,它再次开始工作。

0

由于某种原因改变的Application_Start调用的顺序,将解决这个问题,这是我有:

AreaRegistration.RegisterAllAreas(); 
GlobalConfiguration.Configure(WebApiConfig.Register); 
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
**GlobalConfiguration.Configure(SwaggerConfig.Configure);** 
RouteConfig.RegisterRoutes(RouteTable.Routes); 
BundleConfig.RegisterBundles(BundleTable.Bundles); 
XmlConfigurator.Configure(); 
相关问题