3

我在服务器上部署了一个 webapi 项目 mvc4 rc 和一个 mvc4 rc Web 应用程序。

在本地一切正常但是在服务器上我得到一个错误

2012-06-09 03:18:18,659 [23] INFO WebApplication.Controllers.AccountController – System.InvalidOperationException:没有 MediaTypeFormatter 可用于从媒体类型为“未定义”的内容中读取“业务”类型的对象。在 System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable 1 formatters, IFormatterLogger formatterLogger) at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, IEnumerable1 formatters) 在 C:\@Code\WebApplication\Repository\BusinessRepository.cs 中的 WebApplication.Repository.BusinessRepository.GetByUserId(Guid userId) :C:\@Code\WebApplication\Controllers\AccountController.cs:第 61 行 WebApplication.Controllers.AccountController.SignIn(LogOnModel model, String returnUrl) 的第 37 行。

我试图调用服务的代码看起来像

 var url = ApiRestHelper.ApiUrl(ApiEndPointConstants.GetBusinessByUserId, "userId", userId.ToString());
 var service = ApiRestHelper.Get(url).Content;
 var data = service.ReadAsAsync<Business>().Result;
 HttpContext.Current.Session["BusinessInfo"] = data;
 return data;

 public static HttpResponseMessage Get(string apiMethod, string baseAddress)
    {
        var myHttpClient = new System.Net.Http.HttpClient
        {
            BaseAddress = new Uri(baseAddress)
        };
        var get = myHttpClient.GetAsync(apiMethod);
        var x = get.Result;
        return x;
    }

我究竟做错了什么?

4

1 回答 1

3

此消息表明您正在尝试反序列化Business来自未指定Content-Type标头的消息的实例。在这种情况下,Web API 不知道如何反序列化消息(例如,它不知道是 xml 还是 json)。您确定服务器上正在调用的服务正在返回正确注释的消息吗?(您可以检查 service.Headers.ContentType 属性的值)。

于 2012-06-09T17:43:38.417 回答