Sorprendentemente, int y cadena no tienen un MediaTypeFormatter por defecto, por lo que no sabe cómo manejar esos tipos.
Los únicos tipos que sabe cómo manejarlos de fábrica son JSON, XML y los datos en formato de url. Esta cita es de la página oficial asp.net, http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters
En Web API, el tipo de soporte determina la API Web serializa y deserializa el cuerpo del mensaje HTTP. Hay soporte integrado para XML, JSON, y datos de urlencoded de formularios, y puede admitir tipos de medios adicionales escribiendo un formateador de medios.
Ahora usted 'puede' escribir su propia MediaTypeFormatter (el enlace que he proporcionado le mostrará cómo), pero dado que la API web asp.net es todavía en fase beta que he tenido un montón de problemas con él utilizando formateadores personalizados para tipos simples como cadenas. Descubrí que es mucho más fácil simplemente ajustar el valor que desea PONER en xml/json y se deserializará automáticamente. Ver mi post aquí para obtener más información sobre eso, When HTTP-POST has body, url parameter is null
Para su ejemplo específico de su cuerpo PUT se vería así,
<message>
<id>6</id>
</message>
A continuación, asegúrese de establecer el tipo de contenido de la solicitud HTTP en text/xml (o aplicación/json si elige usar eso). Y debe serializar muy bien en la variable.
¿Se puede publicar la solicitud sin procesar (de Fiddler o FireBug)? – tpeczek
¿Has eliminado algún formateador predeterminado? ¿Puedes publicar el código de configuración también? – tugberk
¿Qué secciones de configuración quieres? –