Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Синхронизация доступа к одному файлу на сервере
|
|||
|---|---|---|---|
|
#18+
Здраствуйте, помогите пожалуйста советом или решением, как реализовать следующее (ASP.NET 2.0): На сервере лежит один файл, в который любой пользователь может добавить информацию. (Это НЕ скрипт гостевой книги). Мне надо сделать так, чтобы все работало красиво, чтобы была синхронизация действий пользователей. Потому что очень вероятны ситуации, когда одновременно большое количество пользователей будет его менять и сохранять. Можно допустим делать так, если какой то пользователь запросил файл для изменения, можно ставить FileShare.None, но тогда что будет происходить с другими запросами? Они будут просто получать эксепшен что файл занят другим потоком? Мне надо как то реализовать это все так, чтобы когда файл занят, другие пользовательские запросы к этому файлу становились в очердь и ждали пока файл освободится. Как это лучше сделать? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 08:01 |
|
||
|
Синхронизация доступа к одному файлу на сервере
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>Здраствуйте, А>помогите пожалуйста советом или решением, как реализовать следующее (ASP.NET 2.0): А>На сервере лежит один файл, в который любой пользователь может добавить информацию. (Это НЕ скрипт гостевой книги). Мне надо сделать так, чтобы все работало красиво, чтобы была синхронизация действий пользователей. Потому что очень вероятны ситуации, когда одновременно большое количество пользователей будет его менять и сохранять. А>Можно допустим делать так, если какой то пользователь запросил файл для изменения, можно ставить FileShare.None, но тогда что будет происходить с другими запросами? Они будут просто получать эксепшен что файл занят другим потоком? Мне надо как то реализовать это все так, чтобы когда файл занят, другие пользовательские запросы к этому файлу становились в очердь и ждали пока файл освободится. А>Как это лучше сделать? А>Спасибо. Хочу уточнить немного вопрос, допустим один пользователь запросил файл, выполняется код который открывает этот файл с FileShare.None, производится обновление данных в файле и файл сохраняется, после этого следующий пользователь может с ним работать. А что будет происходить пока файл занят кем-либо? Все остальные будут получать эксепшн и все? Или все остальные запросы к этому файлу будут становится в очередь и ждать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 11:36 |
|
||
|
Синхронизация доступа к одному файлу на сервере
|
|||
|---|---|---|---|
|
#18+
А>Хочу уточнить немного вопрос, допустим один пользователь запросил файл, выполняется код который открывает этот файл с FileShare.None, производится обновление данных в файле и файл сохраняется, после этого следующий пользователь может с ним работать. А что будет происходить пока файл занят кем-либо? Все остальные будут получать эксепшн и все? Или все остальные запросы к этому файлу будут становится в очередь и ждать? Да все остальные будут получать эксепшн. И не будут запросы ждать. Видимо надо стучаться к тому фаилу через методы некоего класса-менеджера, который и будет реализовывать логику того самого доступа. А Вообще не принципиально — доступ к файлу из кода aspx-страницы или windows-приложения — логика некоего класса-менеджера таже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 11:52 |
|
||
|
Синхронизация доступа к одному файлу на сервере
|
|||
|---|---|---|---|
|
#18+
1) ставишь FileShare.None 2) обращаешься к файлу (в зависимости от задачи в прямом или асинхронном доступе) 3) смотришь по классу эксепшена - если ошибка совместного доступа - повторяешь обращение некое кол-во раз 4) по истичении кол-ва попыток выдаешь пользователю мессагу, что файл занят, обратиться через минуту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 11:55 |
|
||
|
Синхронизация доступа к одному файлу на сервере
|
|||
|---|---|---|---|
|
#18+
>надо стучаться к тому фаилу через методы некоего класса-менеджера Прогрессивное человечество давно наизобретало таких "менеджеров" - многопользовательскими базами данных назвали.-- Абыpвалг! - сказал Linux после pyсификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 12:08 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34056061&tid=1388581]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 375ms |

| 0 / 0 |
