2013-03-14 4 views
0

У меня работает служба Windows Communication Foundation (WCF). Когда вызывается служба, иногда служба должна запускаться снова и заполнять все статические значения, потому что я предполагаю, что веб-сервер отключает службу после периода бездействия. Если он вызывается постоянно, он остается активным, и все значения заполняются. У меня есть статическое целое в этом классе, которое используется служебными вызовами, и у меня это, например, у 30, но иногда я устанавливаю это статическое значение с помощью служебного вызова, так что новое значение равно 20, но поскольку служба деконструируется с помощью веб-сервер после периода бездействия, значение снова инициализируется до 30. Есть ли способ установить значение 30 до 20 при создании службы WCF (статические конструкторы)? Есть ли лучший способ сделать это? У меня есть 2-3 из этих значений, которые я хочу постоянно менять, когда захочу через вызов веб-службы.Постоянное изменение статического значения

+3

Похоже, вам нужно использовать базу данных или аналогичный носитель информации на службе WCF для этих значений. – ChrisBint

+1

http://redis.io/ отлично подходит для этого (легкий, постоянный на всех сеансах и серверах) –

ответ

0

Я предложил бы использовать встроенный в настройках статического класса

Settings.Default["StaticValue"] = "30"; 
Settings.Default.Save(); 

http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx

+0

Я сомневаюсь, что это поточно-безопасный. «Настройки» были разработаны для Windows Forms, которые обычно имеют только один поток за один раз, касаясь этого кода. Не так с WCF. –

0

Даже без перезагрузки, если вы сохраняете это значение только в памяти, оно не сохраняется «постоянно». База данных или подобное было бы здорово, но если вы не используете базу данных для чего-либо уже, использование одного для хранения одного значения кажется излишним. Как насчет записи в файл?

Смежные вопросы