.net Framework 4.7.2打破了httpclient

时间:2019-05-11 00:17:37

标签: asp.net asp.net-mvc asp.net-web-api2

我的ASP.NET MVC项目使用HttpClient.PostAsync()发布到WebAPI端点。一切都很好,直到我最近将项目升级到目标.NET Framework 4.7.2。现在,该调用将以HTTP状态405(不允许的方法)结束。但是,具有[HTTPGet]的端点可以工作。绝望地,我用[EnableCors(origins:“ ”,标头:“ ”,方法:“ *”)]设置API控制器,并使用相同的域和端口(localhost到本地主机)。我什至将项目还原到4.6.1。它仍然抛出405错误。你能帮忙吗?谢谢。

public static async Task < T > Post < T > (string baseUrl, string urlSegment, HttpContent postContent) {
  string responseContent = string.Empty;
  Uri returnUrl = null;

  using(HttpClient client = GetClient(baseUrl)) {
    HttpResponseMessage response = await client.PostAsync(urlSegment.TrimStart('/'), postContent).ConfigureAwait(false);
    if (response.IsSuccessStatusCode) {
      returnUrl = response.Headers.Location;
    }
    return JsonConvert.DeserializeObject < T > (returnUrl.ToString());
  }
}

1 个答案:

答案 0 :(得分:0)

事实证明,WebAPI端点路径已更改。此外,在升级到DotNet Framework 4.7.2之前,我将GIT提交还原为回滚到一个版本,然后在4.7.2升级之后挑选了所有提交。