Как записать сервис WCF с персистентным устройством хранения данных в оперативной памяти?

попробуйте выгоду наконец , довольно важная конструкция. Можно быть уверены, что, даже если исключение выдается, код в наконец блоке будет выполнен. Очень важно в обработке внешних ресурсов выпустить их. Сборка "мусора" не сделает этого для Вас. В наконец части Вы не должны иметь возврат операторы или выдавать исключения. Возможно сделать это, но это - плохая практика и может привести к непредсказуемым результатам.

, Если Вы пробуете этот пример:

try {
  return 0;
} finally {
  return 2;
}

результат будет 2:)

Сравнение с другими языками: Возврат От Наконец

16
задан Jader Dias 1 December 2009 в 15:18
поделиться

3 ответа

По умолчанию для WCF instanceMode установлено значение Per call, что означает, что данные, используемые в службе, относятся к этому клиенту для вызова этого метода.

В вашей реализации попробуйте добавить

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Single)]
public class MyService: IService

Это заставит сервис по сути синглтон.

18
ответ дан 30 November 2019 в 21:28
поделиться

Вы хотите создать долговременную службу :

Долговечные службы WCF - это службы WCF в котором операции могут помнить значения частных переменных (= состояние службы) между перезапуск хоста serivcehost и / или client.

8
ответ дан 30 November 2019 в 21:28
поделиться

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

Однако, если вы хотите сохранять данные только между вызовами службы WCF , пока служба активна , то долговременная служба является излишней. по моему скромному мнению. Использование статических данных вполне допустимо; это именно то, что я делаю в своем проекте WCF. Фактически, код, который вы показали , должен работать , поэтому здесь происходит кое-что еще.

Действительно ли метод Main () таков, как вы его показали? Если так, то это проблема. Как только ваше консольное приложение с поддержкой WCF запускается, оно немедленно закрывается, забирая с собой службу WCF.

3
ответ дан 30 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

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