Response.Redirect()上的网址不正确

时间:2019-07-11 14:29:50

标签: c# asp.net-web-api swagger swagger-ui

我正在尝试使用以下代码在我的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之后缺少斜杠。

*进行编辑以更好地解决问题。

0 个答案:

没有答案