我正在尝试使用以下代码在我的API中将Swagger文档作为主页:
var uri = new Uri(HttpContext.Current.Request.Url.ToString());
var swaggerUri = new Uri(uri.GetLeftPart(UriPartial.Path) + "/api/doc/index").ToString();
//Check if the Uri points to localhost
if(uri.ToString().Contains("127.0.0.1"))
app.Run(async ctx => { ctx.Response.Redirect($"{HttpContext.Current.Request.ApplicationPath}api/doc/index"); });
else
//Problem here
app.Run(async ctx => { ctx.Response.Redirect(swaggerUri); });
变量swaggerUri
将正确的url设置为包含Swagger文档的路径,但是当我在IIS上部署Api时app.Run(async ctx => { ctx.Response.Redirect(swaggerUri); })
重定向到以下网址:
http://testes/webapiapi/doc/index
代替
http://testes/webapi/api/doc/index
它在/webapi
之后缺少斜杠。
*进行编辑以更好地解决问题。