Я ищу подходящую платформу для реализации (веб) уровня обслуживания в .NET. Я немного знаком с WCF и удивляюсь, можно ли его настроить так, как я хочу.
1) Существует отраслевой стандарт для сообщений, отправляемых / получаемых системой, который определяет операции, используемые типы и т. Д. Он основан на XML. Для этого требуется, чтобы все запросы / ответы были завернуты в конверт, например,:
<xxx:Message>
<xxx:Header>
//some header data
</xxx:Header>
<xxx:Body>
<xxx:Command>
//request data
</xxx:Command>
<xxx:Command>
//request data
</xxx:Command>
<xxx:Body>
</xxx:Message>
Элемент xxx:Command
фактически идентифицирует выполняемую операцию и параметры или содержит результат выполнения команды.
WCF оборачивает все в конверт SOAP. Можно ли настроить отправку всех запросов, используя конверт в приведенном выше примере вместо SOAP? Как я должен кодировать свои услуги, чтобы все исходящие и входящие сообщения были правильно проанализированы. Стоит ли искать атрибуты [MessageContract]
или [DataContract]
или оба?
2) Односторонние операции. Отраслевой стандарт гласит, что службы должны ответить сообщением «подтверждение», что запрос был получен. Я смотрел на односторонние операции, которые реализуют подобный подход - они уведомляют клиента, как только сообщение получено сервером. Мне интересно, как я могу настроить отправку сообщения «подтверждение» в соответствии с отраслевым стандартом.
Если WCF не позволяет этого, можете ли вы переадресовать меня на любое другое возможное решение - Remoting, может быть, на другие библиотеки веб-сервисов?