C# 使用Web Api 2身份验证,接收';没有可用的MediaTypeFormatter…';令牌模型对象出错

C# 使用Web Api 2身份验证,接收';没有可用的MediaTypeFormatter…';令牌模型对象出错,c#,webforms,asp.net-web-api2,C#,Webforms,Asp.net Web Api2,没有MediaTypeFormatter可用于从媒体类型为“text/html”的内容中读取类型为“TokenModel”的对象 我在登录时调用Web Api的/Token端点时收到上述错误。我正在使用一个2012年的webforms项目作为我的客户,使用一个2013年的webapi 2项目作为我的api 我应该补充一点,只有当我从本地主机测试我的客户机,并且api被推送到我的开发服务器时,才会发生这种情况。当我在localhost上测试这两个项目时,调用工作正常 如果有人能解释一下可能发生的事

没有MediaTypeFormatter可用于从媒体类型为“text/html”的内容中读取类型为“TokenModel”的对象

我在登录时调用Web Api的
/Token
端点时收到上述错误。我正在使用一个2012年的
webforms
项目作为我的客户,使用一个2013年的
webapi 2
项目作为我的api

我应该补充一点,只有当我从本地主机测试我的客户机,并且api被推送到我的开发服务器时,才会发生这种情况。当我在localhost上测试这两个项目时,调用工作正常

如果有人能解释一下可能发生的事情,我将不胜感激。我将在一个测试场景中让世界各地的人使用这个服务,所以我需要能够在我的开发服务器上安装它。我很感激

Api调用:

using (var httpClient = new HttpClient())
        {
            httpClient.BaseAddress = new Uri(TestServiceUrl);
            httpClient.DefaultRequestHeaders.Accept.Clear();
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));

            var responseMessage = await httpClient.PostAsync("Token", new FormUrlEncodedContent(
                                            new[]
                                        {
                                            new KeyValuePair<string,string>("grant_type","password"),
                                            new KeyValuePair<string,string>("username",username),
                                            new KeyValuePair<string,string>("password",password),
                                        }

              ));

            ***vvv line throwing error vvv***
            var tokenModel = await responseMessage.Content.ReadAsAsync<TokenModel>();

            token = tokenModel.AccessToken;
        }
更新

我试着加上

httpClient.DefaultRequestHeaders.TryAddWithoutValidation(“内容类型”、“应用程序/json”)


我在一个开发人员的博客上发现了这个问题,但我收到了相同的错误。

您是否在响应中设置了正确的
内容类型
标题?我让它自己隐式地处理这个问题,这在localhost中似乎是可以接受的,但在服务器上却不能。
using Newtonsoft.Json;

namespace Login.Class
{
    public class TokenModel
    {
        [JsonProperty("access_token")]
        public string AccessToken { get; set; }

        [JsonProperty(".expires")]
        public string ExpiresAt { get; set; }

        [JsonProperty("expires_in")]
        public int ExpiresIn { get; set; }

        [JsonProperty(".issued")]
        public string IssuedAt { get; set; }

        [JsonProperty("token_type")]
        public string TokenType { get; set; }

        [JsonProperty("userName")]
        public string Username { get; set; }
    }
}