Как я автоматически восстанавливаю дуплексный канал, если он дан сбой?

Вы можете написать общую функцию filterByIndex () и использовать вывод типа в TS, чтобы сохранить проблему с функцией обратного вызова:

, допустим, у вас есть ваш массив [1,2,3,4 ], которые вы хотите отфильтровать () с индексами, указанными в массиве [2,4].

var filtered = [1,2,3,4,].filter(byIndex(element => element, [2,4]))

функция byIndex ожидает функцию элемента и массив и выглядит следующим образом:

Результатом
byIndex = (getter: (e:number) => number, arr: number[]) => (x: number) => {
    var i = getter(x);
    return arr.indexOf(i); 
}

является

filtered = [1,3]
13
задан Jacob 16 October 2008 в 05:46
поделиться

3 ответа

Я испытал облупленность на длительных сессиях (мелкие часы). Я не могу быть уверен, что это - WCF, я вполне уверен его сетевой уровень.

Я думаю об отказе с дуплексом в целом. Это - реальная неприятность, пытающаяся управлять состоянием соединения.

Я думаю о хостинге сервисной конечной точки на клиенте для операций, которые в настоящее время являются частью контракта на обратный вызов. Клиент связался бы с сервером с деталями конечной точки, сервер может сохранить их где-нибудь (сохранился или везде, где). Когда сервер должен связаться с клиентом, он открывает подключение к клиенту через спрятавшие детали конечной точки. В основном, превращая дуплексное соединение в 2 соединения клиент-сервер.

Не отвечает на Ваш вопрос, но я чувствую Вашу боль.

3
ответ дан 2 December 2019 в 02:11
поделиться

У Nicolas Allen, от команды WCF есть предложения для этого:

http://blogs.msdn.com/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx

Его предложение состоит в том, чтобы обработать это на канальном уровне. Канальный уровень немного более хорош, так как можно включить его в стопку любой привязки через поведения вместо того, чтобы требовать пользовательского класса клиентуры.

1
ответ дан 2 December 2019 в 02:11
поделиться

У меня были некоторые подобные проблемы, и мне кажется, что эти продолжительные вызовы более или менее не поддерживаются.

WCF, кажется, разработан, чтобы использоваться для коротких рабочих вызовов. Сервисы, которые называют, делают некоторый маленький материал, и быть законченными.

Я осуществил рефакторинг свои приложения в меньшие предметы производства. Таким образом вместо одного большого длительного объекта я теперь получил много меньших объектов. Конечно, иногда этого не возможно достигнуть. Затем я добрался для просьбы о соединениях устойчивой сети (исключения могут быть пойманы, таким образом давание сбой не является действительно проблемой, я думаю).

0
ответ дан 2 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

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