Swagger给我HTTP错误403.14 - 禁止

问题描述 投票:3回答:6

我正在尝试使用Swagger和Web API。我只是使用随Visual Studio安装的ASP.NET 4.6模板中的“Azure API App”模板,其中包括Swashbuckle.CoreSwaggerConfig.cs。 API工作正常(我能够成功调用它),但如果我尝试去“http://mybaseurl/swagger/”,我会收到此错误:

HTTP错误403.14 - 禁止Web服务器配置为不列出此目录的内容。

似乎Swagger没有得到装载或其他东西。其他人之前得到过这个吗?我似乎无法解决这个问题。谢谢,如果我能提供更多详细信息,请告诉我。

这是我的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();
        }
    }
}
c# asp.net swagger-ui swagger-2.0 swashbuckle
6个回答
4
投票

我刚遇到同样的问题。当我将我的应用程序部署到Azure时,它运行良好,但是当我在本地启动它时,Swagger就不会像上面所描述的那样出现。恢复到以前的版本,我知道之前的工作也没有帮助,所以它似乎与IIS express有关。我不完全确定导致该问题的原因(我已经更改了一些与SSL相关的设置),但是当我删除.vs文件夹(包含applicationhost.config文件)并重新启动Visual Studio时,它又开始工作了。


4
投票

这是一个老问题,但对于面临同样问题的人来说会有所帮助

如果您的项目在根级别有一个名为swagger的文件夹,则会发生冲突,您将无法通过hostname/swagger访问swagger。

解决方案是将Swagger文件夹重命名为另一个名称,然后它就可以了。


0
投票

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


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();

0
投票

这解决了我在.net核心web api

安装这个nuget包Microsoft.AspNetCore.StaticFiles


0
投票

我遇到了同样的问题。在尝试了几件事之后,它仍然无效。然后,我尝试更改Web API应用程序端口号,如下面的链接所示,它工作正常。我不确定是什么导致了这个问题。

https://github.com/domaindrivendev/Swashbuckle/issues/618


0
投票

我有这个问题,它的路由和静态目录冲突。对于Web Api 2,请确保您没有名为“swagger”的静态文件夹。对于.NET Core,请删除wwwroot中名为“swagger”的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.