首页 文章

我在子文件夹上部署时出现Swashbuckle root错误

提问于
浏览
1

我从Swashbuckle开始,我使用Swashbuckle在.NET Core中创建一个Web API . 我需要在IIS站点的子应用程序中部署我的API

IIS基础结构

  • IIS站点(站点)

  • myApi(subApplication)

http://ip:80/myApi

我想通过这个url访问swagger UI:

http://ip:80/myApi/swagger

我希望通过此url访问方法:

http://ip:80/myApi/api/[controller]/methode

ConfigureServices(IServiceCollection服务)

services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info { Title = "My REST API", Version = "v1" });
        });

配置(IApplicationBuilder app ..)

if (env.IsEnvironment("ProdIT"))
        {
            app.UseSwagger(c =>
            {

                c.PreSerializeFilters.Add((swaggerDoc, httpReq) => swaggerDoc.BasePath = "/myApi/");
                c.RouteTemplate = "myApi/api-docs/{documentName}/swagger.json";
            });
            app.UseSwaggerUI(c =>
            {
                c.RoutePrefix = "myApi/swagger";
                c.SwaggerEndpoint("/myApi/api-docs/v1/swagger.json", "MY REST API V1");});

路径控制器

[Route("api/[controller]")]

你能告诉我我的代码有什么问题吗?

提前致谢

1 回答

  • 1

    我有同样的问题,我通过像这样配置SwaggerUI来解决它;

    app.UseSwaggerUI(c =>
    {
         c.SwaggerEndpoint("v1/swagger.json", "MY REST API V1");});
    }
    

相关问题