C # HttpClient PostAsync zamienia 204 na 404

Biorąc pod uwagę tę usługę WebApi:

[ActionName("KillPerson")]
[HttpPost]
public void KillPerson([FromBody] long id)
{
    // Kill
}

I to połączenie HttpClient PostAsync:

var httpClient = new HttpClient { BaseAddress = new Uri(ClientConfiguration.ApiUrl) };
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var serializerSettings = new JsonSerializerSettings
{
    PreserveReferencesHandling = PreserveReferencesHandling.Objects,
    Formatting = Formatting.Indented,
    ReferenceLoopHandling = ReferenceLoopHandling.Serialize
};
var serializedParameter = JsonConvert.SerializeObject(parameter, serializerSettings);
var httpContent = new StringContent(serializedParameter, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync(serviceUrl, httpContent).ConfigureAwait(false);
response.EnsureSuccessStatusCode();

Spodziewałbym się odpowiedzi.EnsureSuccessStatusCode (); aby odnieść sukces, ale zamiast tego rzuca 404. Zabawną rzeczą jest to, że skrzypek mówi medowi, że usługa webapi powraca zgodnie z oczekiwaniami 204, a kiedy go debuguję, KillPerson działa bez problemu.

Aktualizacja: Ustaliłem, że dzieje się to tylko wtedy, gdy kod klienta znajduje się w projekcie PCL lub Silverlight 5. Dokładnie ten sam kod da oczekiwany 204, jeśli powielę go w aplikacji formularzy Windows. Jeśli wskażę aplikację Windows Forms na kod klienta zawarty w PCL, otrzymasz 404 Again.

Aktualizacja 2: rozwiązuje problem (choć nie przeszkadza mi to, że powinienem to zrobić):

[ActionName("KillPerson")]
[HttpPost]
public HttpResponseMessage KillPerson([FromBody] long id)
{
    return this.Request.CreateResponse(HttpStatusCode.OK);
}

Powoduje to ponowne wprowadzenie 404 (skrzypek nadal mówi, że 204 i klient nie działający w srebrze działa poprawnie)

[ActionName("KillPerson")]
[HttpPost]
public HttpResponseMessage KillPerson([FromBody] long id)
{
    return this.Request.CreateResponse(HttpStatusCode.NoContent);
}

Aktualizacja 3 (rozwiązana): W końcu się zorientowaliśmy. Wygląda na to, że masz możliwość korzystania z przeglądarki HTTP lub obsługi klienta w Silverlight. Podczas korzystania z przeglądarki HTTP obsługa wielu rzeczy nie jest obsługiwana - w tym różne kody odpowiedzi i nagłówki. Naprawiono to, dodając te linie przed wywołaniem HttpClient:

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);

questionAnswers(2)

yourAnswerToTheQuestion