попробуйте выгоду наконец , довольно важная конструкция. Можно быть уверены, что, даже если исключение выдается, код в наконец блоке будет выполнен. Очень важно в обработке внешних ресурсов выпустить их. Сборка "мусора" не сделает этого для Вас. В наконец части Вы не должны иметь возврат операторы или выдавать исключения. Возможно сделать это, но это - плохая практика и может привести к непредсказуемым результатам.
, Если Вы пробуете этот пример:
try {
return 0;
} finally {
return 2;
}
результат будет 2:)
Сравнение с другими языками: Возврат От Наконец
По умолчанию для WCF instanceMode установлено значение Per call, что означает, что данные, используемые в службе, относятся к этому клиенту для вызова этого метода.
В вашей реализации попробуйте добавить
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Single)]
public class MyService: IService
Это заставит сервис по сути синглтон.
Вы хотите создать долговременную службу :
Долговечные службы WCF - это службы WCF в котором операции могут помнить значения частных переменных (= состояние службы) между перезапуск хоста serivcehost и / или client.
Хотите ли вы сохранить данные после окончания срока службы вашего экземпляра ServiceHost
? Если да, то я согласен с тем, что надежная служба имеет смысл.
Однако, если вы хотите сохранять данные только между вызовами службы WCF , пока служба активна , то долговременная служба является излишней. по моему скромному мнению. Использование статических данных вполне допустимо; это именно то, что я делаю в своем проекте WCF. Фактически, код, который вы показали , должен работать , поэтому здесь происходит кое-что еще.
Действительно ли метод Main ()
таков, как вы его показали? Если так, то это проблема. Как только ваше консольное приложение с поддержкой WCF запускается, оно немедленно закрывается, забирая с собой службу WCF.