使用 4.0.31,我的 AppHost 配置方法声明如下:
public override void Configure(Funq.Container container)
{
HostConfig hc = new HostConfig()
{ HandlerFactoryPath = "api", UseHttpsLinks = true };
SetConfig(hc);
Plugins.Add(new CorsFeature());
Plugins.Add(new SwaggerFeature());
...
}
我的印象是,这会将 swagger-ui 的 url 设置为 ../api/resources 的 https 版本,但是我仍然在 swagger URL 文本框中获得常规的 http 端点,例如:
http://example.com/myapp/api/resources
我们的 Web 服务器位于执行 SSL 卸载(并且需要 SSL)的负载平衡器后面,因此 URL 应该是:
https://example.com/myapp/api/resources
积极的一点是,一旦您修复了端点 url,使用“UseHttpsLinks”实际上可以让 swagger-ui 发挥作用。没有它,它根本不起作用!
我正在通过虚拟文件系统使用替换 index.html作为 hack 覆盖 swagger url 属性——因为在开发、QA 和登台环境中,url 属性指向生产......(不太好)