Swagger给了我HTTP错误403.14 - 禁止

本文关键字:禁止 错误 HTTP Swagger | 更新日期: 2023-09-27 18:31:33

我正在尝试将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();
        }
    }
}

Swagger给了我HTTP错误403.14 - 禁止

我刚刚遇到了同样的问题。当我将我的应用程序部署到 Azure 时,它运行良好,但是当我在本地启动它时,Swagger 不会如上所述显示。恢复到我知道以前可以工作的先前版本也无济于事,因此它似乎与IIS express有关。我不完全确定是什么导致了这个问题(我已经更改了一些与SSL相关的设置),但是当我删除.vs文件夹(其中包含applicationhost.config文件)并重新启动Visual Studio时,它又开始工作了。

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

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

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

在 2021/2022 年向你袭来,这是一个有趣的问题。

如果你使用的是macOS,苹果的新Airplay功能默认处于打开状态,并监听端口5000和7000......叹息。与默认招摇端口(也是 5000)的严重冲突!

只需转到"系统偏好设置>共享">取消选中列表底部的"AirPlay 接收器"。然后重新启动您的 .NET 应用程序,Swagger UI 最终应该再次显示在您的浏览器中!

希望这对遇到这个奇怪问题的人有所帮助!

我遇到了同样的问题。在尝试了几件事之后,它仍然不起作用。然后,我尝试按照以下链接中的建议更改 Web API 应用程序端口号,它起作用了。我不确定是什么导致了这个问题。

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

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

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

由于

某种原因,更改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();

这在.net核心Web api中解决了我的问题

安装此 nuget 包Microsoft.AspNetCore.StaticFiles