3

webapiプロジェクトmvc4rcとmvc4rcWebアプリケーションをサーバーにデプロイしています。

ローカルではすべてが正しく機能しますが、サーバーではエラーが発生します

2012-06-09 03:18:18,659 [23] INFO WebApplication.Controllers.AccountController – System.InvalidOperationException:メディアタイプ「undefined」のコンテンツからタイプ「Business」のオブジェクトを読み取るために使用できる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)at WebApplication.Repository.BusinessRepository.GetByUserId(Guid userId)in C:\ @ Code \ WebApplication \ Repository \ BusinessRepository.cs :C:\ @ Code \ WebApplication \ Controllers \ AccountController.cs:line 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 に答える