Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Доброго дня. Есть веб сервис, его могут запускать 5 человек, у каждого свой логин и пароль. Необходимо контролировать чтобы в конкретный момент времени был запущен только один раз. Сервис обрабатывает данные, и отключение клиента - не всегда ( тут я конечно могу ошибиться, проверяла на студии и localhost server) прекращает загрузку данных. Сделать static класс и хранить в нем кол-во текущих запусков. Как вариант, но может есть какие то настройки для Севриса, что то типа Код: c# 1. Чтобы пока сервис работет, другой не мог его запустить. Или задам вопрос по другому, можно ли как то получить список запущенных сервисов и остановить их? Спасибо. ASP.NET 4.0, C#. WebForms ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 08:37 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Volochkova, 1. создавать и проверять глобальный EventWaitHandle 2. проверять, не занят ли порт (т.е. сервис просто не запустится, если порт занят) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 10:26 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
hVosttVolochkova, 1. создавать и проверять глобальный EventWaitHandle 2. проверять, не занят ли порт (т.е. сервис просто не запустится, если порт занят) Можно подробнее про занятый порт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 14:57 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
VolochkovaМожно подробнее про занятый порт? это имеет смысл, если всё работает на одной рабочей станции (т.е. мы говорим про localhost). по умолчанию используется порт 80, если один сервис его занял, другой не может его использовать, только на другом свободном порту. в целом, лучше использовать механизмы синхронизации (пункт 1), это не сложно: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:36 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
VolochkovaСервис обрабатывает данные, и отключение клиента - не всегда ( тут я конечно могу ошибиться, проверяла на студии и localhost server) прекращает загрузку данных.Сервису обычно монопенисуально то, отключился клиент, или нет. Он закончит свою работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 15:46 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Почему бы не сделать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Или идея в том, что если процесс запущен, то не надо его повторно запускать? Тогда как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 16:28 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
skyANAПочему бы не сделать так: а кто сказал, что речь идёт про веб-сервисы в контексте одного запущенного приложения? такой подход: 1. не подходит, если домены разные 2. по сути тоже самое, только в "сахарной" обёртке C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:11 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
hVostt, а если разные запросы обрабатываются разными серверами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:18 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Можно и sp_getapplock посоветовать, зная любовь ТС к СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:20 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Ведь кто сказал, что не хранимая процедура обрабатывает данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:22 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
skyANAhVostt, а если разные запросы обрабатываются разными серверами? ога, осталось только погадать на кофейной гуще, что там задача ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:44 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Вангую: там кластер из 12 серверов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2014, 17:50 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
hVosttVolochkovaМожно подробнее про занятый порт? это имеет смысл, если всё работает на одной рабочей станции (т.е. мы говорим про localhost). по умолчанию используется порт 80, если один сервис его занял, другой не может его использовать, только на другом свободном порту. в целом, лучше использовать механизмы синхронизации (пункт 1), это не сложно: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Сама проверка сама по себе понятна. Но если клиент отвалился, а второй пытается подключиться, то мне бы остановить предыдущий запуск. Или чтобы админ мог подключиться, посмотреть что сейчас обрабатывается и сделать стоп всем запущенным сервисам. Собственно самое важное, это прервать уже запущенную загрузку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 12:12 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
чето я не догоняю, есть атрибуты поведения сервиса ( стандартные), ими это всем можно настроить без труда ( single) или это не то что я думаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 13:28 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, дак мы в разделе ASP.NET, а не WCF, если ты про Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 13:39 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
skyANA, Ааа.. понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 13:50 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
hVosttVolochkovaМожно подробнее про занятый порт? это имеет смысл, если всё работает на одной рабочей станции (т.е. мы говорим про localhost). по умолчанию используется порт 80, если один сервис его занял, другой не может его использовать, только на другом свободном порту. в целом, лучше использовать механизмы синхронизации (пункт 1), это не сложно: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Придется делать все таки статик элемент и хранить в нем что то типа Executing. Вот что нашла, на просторах интернета. как то вот так В принципе доступно описана и задача и код. Единственное что пока не разобрала, как начать загрузку - и не ждать ответа. Но думаю что "докурю" Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 15:47 |
|
||
|
WebService монопольный запуск, контроль выполнения
|
|||
|---|---|---|---|
|
#18+
Дошло, запускают поток на сервере. Вот не уверена что это хорошая практика. Была мысль запустить поток на клиенте и тут же его придушить :-) А через статик элементы получать состояние о процессе на клиенте. Теперь осталось только написать. Огромное спасибо 2 hVostt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2014, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38613092&tid=1357469]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 349ms |

| 0 / 0 |
