C # Web API - Internal Server Error 500

When I have a return type of "string" in my WebAPI controller, it SuccessStatusCodereturns "OK" in my MVC controller, but when the return type has a model named "USER", I get this internal server Error. Here is my code:

WebAPI:

public class UserController : ApiController
{
    OnlineCenterEntities db = new OnlineCenterEntities();

    public USER GetUserInfo(string userName, string domain)
    {
        USER userInfo = (from u in db.USERs
                         where u.USER_NAME.ToUpper() == userName.ToUpper() && u.LDAP_NAME.ToUpper() == domain.ToUpper()
                         select u).FirstOrDefault();

        return userInfo;
    }
}

MVC controller calling WebAPI:

 public class HomeController : Controller
{
    HttpClient client;
    string url = "http://localhost:61566/api/user/";

    public HomeController()
    {
        client = new HttpClient();
        client.BaseAddress = new Uri(url);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    }

    public async Task<ActionResult> Index(string userName, string domain)
    {
        string GetUserInfoURL = String.Format("GetUserInfo?userName={0}&domain={1}", userName, domain);
        HttpResponseMessage responseMessage = await client.GetAsync(url+GetUserInfoURL);

        if (responseMessage.IsSuccessStatusCode)
        {
            var responseData = responseMessage.Content.ReadAsStringAsync().Result;
            var userInfor = JsonConvert.DeserializeObject<USER>(responseData);
        }

        return View();
    }

USER Model:

public partial class USER
{

    public int USER_ID { get; set; }
    public string USER_NAME { get; set; }
    public string FIRST_NAME { get; set; }
    public string LAST_NAME { get; set; }
    public string LDAP_NAME { get; set; }
    public string EMAIL { get; set; }
}

In my WebAPI, if I change the return type from USERto string(and, of course, change the type of the returned variable to some string (userInfo.FIRST_NAME)), I get SuccessStatusCodeas 'OK', but from this code I get Internal Server Errorwith StatusCode: 500(whatever that means) ) I tried to insert a breakpoint at all possible times, and I know that api returns the result. I just don't understand why the next line

HttpResponseMessage responseMessage = await client.GetAsync(url+GetUserInfoURL);

InternalServerError, USER, USER .

, userName domain, , !

+4
1

, , , . USER, - WebAPI , .

"application/json". JsonMediaTypeFormatter JSON.Net, # json . -, , , .

, , - MessageHandler, , . , .

0

All Articles