You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft.Azure.WebJobs.Extensions.OpenApi.Core时Swagger UI无法HTTPS渲染内容

问题原因与解决方案

在1.5.1版本的Microsoft.Azure.WebJobs.Extensions.OpenApi中,你设置ForceHttps=true但本地HTTP访问Swagger仍用HTTP加载的核心原因是:组件默认对本地localhost环境做了特殊处理,会跳过HTTPS强制逻辑,这个设计是为了方便开发者本地调试,避免HTTPS证书配置的麻烦。

解决方案1:本地启用HTTPS访问

如果需要本地Swagger以HTTPS加载内容,直接启用本地函数应用的HTTPS即可:

  • 用命令行启动函数:func start --ssl
  • 或者在Visual Studio的调试设置中,勾选“启用SSL”选项
  • 之后访问https://localhost:7072/api/swagger/ui(本地HTTPS默认端口为7072),此时Swagger会自动以HTTPS形式加载所有内容。

解决方案2:重写Scheme解析逻辑强制HTTPS

如果需要彻底绕过本地环境的判断,强制所有场景下都用HTTPS生成Swagger链接,可以重写ResolveScheme方法:

public class OpenApiConfigurationOptions : DefaultOpenApiConfigurationOptions
{
    public override bool ForceHttps { get; set; } = true;
    public override OpenApiInfo Info { get; set; } = new OpenApiInfo()
    {
        Version = "1.0.0",
        Title = "OpenAPI Document ",
        Description = "An adapter",
        Contact = new OpenApiContact()
        {
            Name = "N/A",
            Email = "N/A",
            Url = null,
        },
        License = new OpenApiLicense()
        {
            Name = "MIT",
            Url = new Uri("http://opensource.org/licenses/MIT"),
        }
    };

    // 重写Scheme解析,强制返回HTTPS
    public override string ResolveScheme(HttpRequest req)
    {
        return "https";
    }
}

修改后,无论本地还是生产环境,Swagger文档中的所有server URL都会使用HTTPS scheme。

内容的提问来源于stack exchange,提问作者PersianIronwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:33:28