7

我正在尝试将 Swagger 与 Web API 一起使用。我只是使用随 Visual Studio 安装的 ASP.NET 4.6 模板中的“Azure API App”模板,其中Swashbuckle.Core包括SwaggerConfig.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();
        }
    }
}
4

8 回答 8

14

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

于 2017-03-21T07:18:35.550 回答
11

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

如果您的项目有一个以swagger根级别命名的文件夹,则它会发生冲突,您将无法通过hostname/swagger.

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

于 2018-12-20T06:27:59.840 回答
2

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

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

于 2018-08-24T10:45:55.403 回答
1

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

于 2019-07-27T19:13:54.453 回答
0

2021 / 2022 年即将到来,这很有趣。

如果你在 macOS 上,Apple 的新 airplay 功能默认开启并监听 5000 和 7000 端口……叹息。与默认的 swagger 端口(也是 5000)发生严重冲突!

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

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

于 2022-02-26T10:45:03.713 回答
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();
于 2017-05-04T19:38:34.933 回答
0

这在.net core web api中解决了我

安装这个 nuget 包 Microsoft.AspNetCore.StaticFiles

于 2018-08-15T00:15:02.873 回答
0

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

于 2016-01-23T23:46:22.823 回答