Você tem que olhar o que a chamada C# retorna para você, certo?
Eu não sei C#, mas não acho que o json deva ser enviado na variável $_POST, mas na parte do corpo da solicitação. No PHP vanilla você pode obtê-lo com:
file_get_contents('php://input');
file_get_contents('php://input');