Swagger给我HTTP错误403.14-禁止

Chr*_*ght 5 c# asp.net swagger-ui swagger-2.0 swashbuckle

我正在尝试将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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*zka 11

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


Gaj*_*dra 6

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

如果您的项目有一个swagger在根目录下命名的文件夹,则该文件夹会发生冲突,并且您将无法通过访问swagger hostname/swagger

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


Mar*_*tin 0

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