IIS WCF разместил сервис несколько Контрактов на Обслуживание, реализованных единственным сервисом - как я совместно использую uri между конечными точками через конфигурацию

Для Linux (и BSD) Вы хотите использовать clock_gettime () .

#include 

int main()
{
   timespec ts;
   // clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
   clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}

См.: Этот ответ для получения дополнительной информации

9
задан Community 23 May 2017 в 12:25
поделиться

1 ответ

Насколько мне известно, а в прошлом месяце я много работал с WCF, нельзя использовать один и тот же точный URI для нескольких конечных точек. В WCF «служба» определяется не реализацией контракта, а самим контрактом (который также следует WSDL и стандартным практикам SOA). Конечные точки позволяют вам предоставлять одну службу через несколько протоколов (и, следовательно, разные адреса) , но вы не можете использовать разные службы по одному и тому же адресу. Логически это не сработает.

Предположим следующий сценарий (который вы пытаетесь реализовать):

IProductService exposed @ http://localhost/service
ICategoryService exposed @ http://localhost/service
IMetadataExchange exposed @ http://localhost/service/mex

Достаточно легко получить доступ к конечной точке MEX ... у нее есть уникальный URI. Однако как получить доступ к IProductService или ICategoryService? Нет ничего, что позволило бы вам различать эти два, кроме URI. В WCF нет ничего, что позволило бы ему маршрутизировать сообщения, которые должны отправляться в IProductservice, и сообщениями, которые должны отправляться в ICategoryService. Поскольку оба используют один и тот же URI, у вас действительно есть конфликт. Каждый КОНТРАКТ службы должен быть представлен через уникальный URI. Каждая конечная точка, которая использует одну и ту же точную привязку, должна использовать отдельный адрес.

Есть способ достичь того, что вам нужно. Проблема в маршрутизации сообщений. WCF изначально не поддерживает маршрутизацию сообщений OOB, однако предоставляет возможность реализовать собственный маршрутизатор сообщений. (Или, если вы хотите использовать бета-версию, .NET 4.0 поставляется с маршрутизатором сообщений из коробки, основываясь на статьях, ссылки на которые приведены ниже, но с улучшенными возможностями настройки.) Мишель Бустаманте, настоящая волшебница WCF, предоставил полную реализацию и статью с описанием маршрутизации сообщений по следующим ссылкам:

http://msdn.microsoft.com/en-us/magazine/cc500646.aspx http://msdn.microsoft.com/ en-us / magazine / cc546553.aspx

Общая идея состоит в том, что вы настраиваете одну службу, которая прослушивает один URI. Эта служба использует отправку с подстановочными знаками для одной операции службы, которая затем определяет, на какой уникальный URI направлять каждое сообщение. Вы можете сделать определение любым способом, но самый простой - запрос Action, предполагающий, что каждое действие на ваших двух интерфейсах, IProductService и ICategoryService, глобально уникально. Однако в конечном итоге у вас будет больше сервисов ... сам маршрутизатор представляет собой отдельную службу WCF, которую необходимо размещать так же, как и любую другую.

com / en-us / magazine / cc500646.aspx http://msdn.microsoft.com/en-us/magazine/cc546553.aspx

Общая идея состоит в том, что вы настраиваете единую службу, которая прослушивает единственный URI. Эта служба использует отправку с подстановочными знаками для одной операции службы, которая затем определяет, на какой уникальный URI направлять каждое сообщение. Вы можете сделать определение любым способом, но самый простой - запрос Action, предполагающий, что каждое действие на ваших двух интерфейсах, IProductService и ICategoryService, глобально уникально. Однако в конечном итоге у вас будет больше сервисов ... сам маршрутизатор - это отдельная служба WCF, которую нужно размещать так же, как и любую другую.

com / en-us / magazine / cc500646.aspx http://msdn.microsoft.com/en-us/magazine/cc546553.aspx

Общая идея состоит в том, что вы настраиваете единую службу, которая прослушивает единственный URI. Эта служба использует отправку с подстановочными знаками для одной операции службы, которая затем определяет, на какой уникальный URI направлять каждое сообщение. Вы можете сделать определение любым способом, но самый простой - запрос Action, предполагающий, что каждое действие на ваших двух интерфейсах, IProductService и ICategoryService, глобально уникально. Однако в конечном итоге у вас будет больше сервисов ... сам маршрутизатор - это отдельная служба WCF, которую нужно размещать так же, как и любую другую.

Эта служба использует отправку с подстановочными знаками для одной операции службы, которая затем определяет, на какой уникальный URI направлять каждое сообщение. Вы можете сделать определение любым способом, но самый простой - запрос Action, предполагающий, что каждое действие на ваших двух интерфейсах, IProductService и ICategoryService, глобально уникально. Однако в конечном итоге у вас будет больше сервисов ... сам маршрутизатор - это отдельная служба WCF, которую нужно размещать так же, как и любую другую.

Эта служба использует отправку с подстановочными знаками для одной операции службы, которая затем определяет, на какой уникальный URI направлять каждое сообщение. Вы можете сделать определение любым способом, но самый простой - запрос Action, предполагающий, что каждое действие на ваших двух интерфейсах, IProductService и ICategoryService, глобально уникально. Однако в конечном итоге у вас будет больше сервисов ... сам маршрутизатор - это отдельная служба WCF, которую нужно размещать так же, как и любую другую.

7
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: