ASP.NET Web Api — отправка объекта в настраиваемый контроллер действий

У меня есть следующий ApiController

public class ValuesController : ApiController
{
    // GET /api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    public User CreateUser(User user)
    {
        user.Id = 1000;
        return user;
    }
}

со следующим маршрутом

    routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional });

, и я хочу использовать эту службу. Я могу использовать первый метод:

    var client = new WebClient();
    var result = client.DownloadString(@"http://localhost:61872/api/values/get");

, но я не могу использовать второй метод. Когда я сделаю следующее:

    var user = new User() { Name = "user1", Password = "pass1" };
    var json = Newtonsoft.Json.JsonConvert.SerializeObject(user);
    result = client.UploadString(@"http://localhost:61872/api/values/createuser", json);

я поймаю следующее исключение без дополнительной информации

Удаленный сервер вернул ошибку: (500) Внутренняя ошибка сервера.

У меня есть два вопроса:

  1. Как правильно установить пользовательский объект в качестве параметра метода службы?
  2. Как я могу получить дополнительную информацию о «волшебном» исключении?
6
задан slavsergey 24 May 2012 в 10:46
поделиться