Дэвид прав насчет проблем с синхронизацией часов. Тем не менее, добавление информации о метках времени вне реализации службы / клиента совсем не сложно в WCF.
Вы правы: он не поддерживает SoapExtensions, хотя, на самом деле, у него гораздо более богатый набор точек расширяемости. В вашем конкретном случае, я думаю, что нестандартное поведение, которое добавляет MessageInspector, вероятно, будет работать.
На самом деле существует два интерфейса инспектора сообщений: один для клиента ( IClientMessageInspector ) и один для сервера ( IDispatchMessageInspector ).
Самый простой способ подключить инспектор диспетчеризации на стороне службы - это поведение службы (IServiceBehavior), поскольку вы можете подключить его к реализации службы в качестве настраиваемого атрибута. Вот простой пример 1011 * того, как это сделать. Вы также можете подключить его через IEndpointBehavior, но вам нужно сделать это либо с помощью кода при настройке хоста службы, либо с помощью конфигурации, которая требует написания немного больше кода.
На стороне клиента вы все еще используете поведение конечных точек, но вводить их с помощью кода намного проще, поскольку у вас есть прямой доступ к ClientRuntime из прокси-клиента.
В любом случае, я думаю, что что-то вроде отметки времени лучше добавить к сообщению в качестве настраиваемого заголовка, чтобы оно не являлось частью непосредственно полезной нагрузки сообщения.