2012-07-03 8 views
0

Я создаю веб-сервер, используя страницы C# codebehind. Я хочу, чтобы один пользователь просматривал и отправлял что-то на странице, и что данные хранятся на серверах, таким образом, что они постоянны, И что пользователь ANOTHER может просматривать эти данные.Стойкие данные на serveride

Я ограничен, чтобы сохранить его в файле flatfile или базе данных, или есть какая-то функция, которую я могу использовать на C# или .NET для этой цели, например, постоянная кросс-сессия или что-то еще? (нормальные статические переменные будут отличаться для каждого отдельного пользователя, не так ли?)

ответ

2

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

+0

Точно, что мне нужно на самом деле, спасибо! Я был убежден, что статические переменные были разными для каждого пользователя, использующего бэкэнд-код, но, очевидно, он привязан к веб-серверу, а не к взаимодействию с пользователем. –

+0

HttpApplicationState не является постоянным, поскольку он умирает с процессом, который его создал, - Приложением. –

+1

Я не использовал правильное слово - упорство не было тем, что я хотел. Для меня важна то, что переменная должна быть доступна всем пользователям, просматривающим страницу, и что если один пользователь изменил эту переменную, другой пользователь, обновляющий страницу, увидит это изменение. И, конечно же, переменная останется, даже если пользователи покинут веб-страницу. Что он делает при использовании статического электричества. Он потерян, только если веб-сервер опустится, что отлично –

-1

Am I запретных для сохранения его в FlatFile или базы данных, или есть какая-то особенность, которую я могу использовать в C# или .NET для этой цели?

Не может быть другой функции. См., Плоский файл (т. Е. Файл, который вы пишете, или запись другой службы), и база данных (которая может быть база данных SQL, база данных документов или любая другая форма) логически охватывают все возможности, которые существуют для сохраняющихся данных. Я не думаю, что может быть какой-то другой способ, теоретически, который уже не попадает в плоский файл (т. Е. Файл, который вы управляете) или базу данных (файл управляется каким-то процессом с драйверами или серверами).

Что вы спросите: «У меня есть радио, оно может быть включено или выключено. Есть ли другое состояние, в котором он может быть?» - плохие новости, нет, либо он включен, либо выключен.

Любая функция в .NET Framework либо заканчивается, либо является одним из двух, которые вы называете в конце.

1

Вы можете проверить это кэширование переменного

Cache["Key"] = yourValue; 

Application["Key"] = yourValue; 

У вас есть еще один кэш, связанный с сессией, но это не глобальное:

Session["Key"] = value; 

У вас есть еще один кэш на странице

ViewState["Key"] = value; 
0

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

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

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