当我为应用程序创建的Web API调用Web API时,出现奇怪的错误。 GET请求通过并返回他们应该的所有数据,但我的POST/PUT命令都返回502,特别是从MVC应用程序返回。我可以从Postman调用API并获得正确的响应,并在数据库中创建对象。502错误的网关在POST/PUT Web API调用ASP.NET核心MVC
502 - Web服务器收到无效响应,同时充当 网关或代理服务器。您正在寻找的页面有问题,并且无法显示。当Web服务器( 充当网关或代理服务器)联系上游内容服务器时,它从内容服务器收到无效响应 。
我冒充集成Windows登录为所有Web请求的API下面的代码:
async Task Action()
{
response = await _service.CreateIncident(model);
}
await WindowsIdentity.RunImpersonated(identity.AccessToken, Action);
CreateIncident(模型):
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }))
{
var newIncident = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await client.PostAsync(hostUri, newIncident);
return response;
}
还有一个GET请求我通过Ajax创建了一个递增的ID以显示给用户,然后他们创建了新的事件,并返回502 Bad Gateway。这是一个IIS设置是不正确的?
newIncident字符串是否超过255个字符? – Sparrow
命令通过服务器很好(我没有意识到这实际上发生了,我可能已经改变了一些东西,实际上开始工作,并没有意识到它......),但我仍然得到一个502坏当我尝试在PUT/POST请求后重定向用户时(例如,用户创建对象,然后指向该对象的GET页面),网关出错。 –