gpt4 book ai didi

c# - 部署到 prod 后没有 MediaTypeFormatter 可供读取

转载 作者:行者123 更新时间:2023-11-30 16:24:14 25 4
gpt4 key购买 nike

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

在本地一切正常,但在服务器上出现错误

2012-06-09 03:18:18,659 [23] INFO WebApplication.Controllers.AccountController – System.InvalidOperationException: No MediaTypeFormatter is available to read an object of type 'Business' from content with media type ''undefined''. at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable1 formatters, IFormatterLogger formatterLogger)
at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, IEnumerable
1 formatters) at WebApplication.Repository.BusinessRepository.GetByUserId(Guid userId) in C:\@Code\WebApplication\Repository\BusinessRepository.cs:line 37 at WebApplication.Controllers.AccountController.SignIn(LogOnModel model, String returnUrl) in C:\@Code\WebApplication\Controllers\AccountController.cs:line 61 .

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

 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;
}

我做错了什么?

最佳答案

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

关于c# - 部署到 prod 后没有 MediaTypeFormatter 可供读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com