Azure devops 部署时未能加载API定义获取错误,但在本地主机上没有问题

Azure devops 部署时未能加载API定义获取错误,但在本地主机上没有问题,azure-devops,swagger,swagger-ui,Azure Devops,Swagger,Swagger Ui,我正在将我的api从netcore2.1升级到3.1 当我在本地主机上运行时,UI工作正常 当我通过Azure DevOps部署并转到我得到的myapplication/myapi/swagger.html url时 Failed to load API definition Fetch Error Service Unavailable /myapi/swagger/v1/swagger/json 然而,我可以在下面看到json myapplication/myapi/swagger/v1

我正在将我的api从netcore2.1升级到3.1

当我在本地主机上运行时,UI工作正常

当我通过Azure DevOps部署并转到我得到的myapplication/myapi/swagger.html url时

Failed to load API definition 
Fetch Error
Service Unavailable /myapi/swagger/v1/swagger/json
然而,我可以在下面看到json

myapplication/myapi/swagger/v1/swagger.json
我有以下几点

   public static IApplicationBuilder UseSwaggerDocumentation(this IApplicationBuilder app)
    {
        app.UseSwagger(c =>

            c.RouteTemplate = "myapi/swagger/{documentName}/swagger.json"
        );

        app.UseSwaggerUI(c =>
        {

            c.SwaggerEndpoint("/myapi/swagger/v1/swagger.json", "Versioned API v1.0");

            c.RoutePrefix = "myapi/swagger";

        });

        return app;
    }
我正在使用

Swashbuckle.AspNetCore (5.2.0)

我发现以下方法有效

    public static IApplicationBuilder UseSwaggerDocumentation(this IApplicationBuilder app)
    {
        app.UseSwagger(c =>

            c.RouteTemplate = "myapi/{documentName}/swagger.json"
        );

        app.UseSwaggerUI(c =>
        {

            c.SwaggerEndpoint("./v1/swagger.json", "Versioned API v1.0");

            c.RoutePrefix = "myapi";

        });

        return app;
    }
国家

如果将目录与IIS或反向代理一起使用,请设置招摇过市 端点到使用./prefix的相对路径。例如 ./swagger/v1/swagger.json。使用/swagger/v1/swagger.json指示 在URL的真正根位置查找JSON文件的应用程序(加上 路由前缀(如果使用)。例如,使用 ://改为swagger/v1/swagger.json 属于 :///swagger/v1/swagger.json

然而不幸的是,我的解决方案不能与自动测试一起工作。
因此我问

我在某个地方读到,iis Express的行为与iis 8.5不同,我感觉自己好像在与章鱼搏斗。一旦我有了工作,其他事情就会失败。因此,我不想将此标记为刚刚回答,我请求了更多的帮助