我正在使用MVC / Web Api构建一个新的ASP.NET 5网站,并在Azure网站上托管它。我目前正在使用beta 8。
当我使用POST方法构建控制器时出现了问题。每当我部署到我的Azure网站时,调用POST总会导致502 Bad Gateway Error。 “CGI应用程序遇到错误,服务器终止了该过程”。这种方法在本地工作。
在对问题进行故障排除之后,我将问题追溯到我编写的一个中间件,实际上每当请求进入HTTP时就会发送302重定向。 302仅在HTTPS上将请求发送到相同的主机/路径/查询。
当我删除此中间件时,POST工作。显然这导致了这个问题,但我有两个问题。
我的中间件代码:
if(!context.Request.IsHttps){
var withHttps = "https://" + context.Request.Host + context.Request.Path;
if(context.Request.QueryString.HasValue){
withHttps += context.Request.QueryString.Value;
}
context.Response.Redirect(withHttps);
}
else{
if(m_Next != null)
await m_Next(context);
}
答案 0 :(得分:1)
问题是将POST HTTP命令的更改重定向到GET命令。
您有两种选择:
刚刚找到this on SO,它有可能对您有所帮助的信息: