powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование инстанса сервиса после посбэка
19 сообщений из 19, страница 1 из 1
Использование инстанса сервиса после посбэка
    #38677722
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть wcf сервис с поддержкой сессий. Необходимо на aspx странице при одном событии инициализировать сервис, а после постбэка в другом событии выполнить метод сервиса. Где хранить инстанс? В сессии и в кэше не получится, т.к. базовый класс инстанса несериализуемый.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677774
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierЕсть wcf сервис с поддержкой сессий. Необходимо на aspx странице при одном событии инициализировать сервис, а после постбэка в другом событии выполнить метод сервиса. Где хранить инстанс? В сессии и в кэше не получится, т.к. базовый класс инстанса несериализуемый.

Зачем хранить экземпляр, храните параметры
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677797
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,

Можно поподробнее? Можно восстановить экземпляр ServiceClient по параметрам?
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677820
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tier,

Так вызывайте сервис и передавайте ему сохраненные параметры.

PS: Я еще нигде не видел что бы сохраняли экземпляры сервисов вы первый
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677822
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierЕсть wcf сервис с поддержкой сессий. Необходимо на aspx странице при одном событии инициализировать сервис, а после постбэка в другом событии выполнить метод сервиса. Где хранить инстанс? В сессии и в кэше не получится, т.к. базовый класс инстанса несериализуемый.Ну сделайте его static и будут все запросы использовать один и тот же экземпляр
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677837
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708
Какие именно параметры я должен сохранять и как инициализировать клиент сервиса с этими параметрами? Ткните носом.

skyANA
Была идея сделать фабрику коннектов через синглтон, но сайт работает в двух application и такой вариант не проканал.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677841
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче я не понял, в чём смысл этих плясок.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677853
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA

А смысл следующий, в сервисе инициализируется довольно тяжелый объект, делаются необходимые проверки - результат выводится клиенту, а потом при согласии клиента этот объект записывается, чтоб этот объект не гонять по сети он хранится в сервисе, в котором поддерживается сессия. Для обеспечения сохранении сессии сервиса между постбэками необходимо либо как-то хранить инстанс сервиса или как-то его восстанавливать.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677866
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierХрани состояние между вызовами в БД.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677880
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tier,

skyANA вполне реально предложил
это ж обыкновенное кеширование, ну не хотите в стандартных местах
сделайте свой кеш
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 static class Cache<T>
    {
        static readonly Dictionary<int,T> Dictionary=new Dictionary<int, T>();

        public static void Add(int key, T value)
        {
            Dictionary.Add(key,value);
        }

        public static T GetInstans(int key)
        {
            return Dictionary[key];
        }
    }


без обвесов,( потоки, удаление и т.д)
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677888
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи

Я ж выше писал что такой вариант не проканает, т.к. сайт висит на двух процессах, кэш одного не будет видеть кэш другого.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677894
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierГде-то в степи

Я ж выше писал что такой вариант не проканает, т.к. сайт висит на двух процессах, кэш одного не будет видеть кэш другого.

замените сессии wcf на токен, и гоняйте его между сервисом и страницами
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38677934
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierГде-то в степи

Я ж выше писал что такой вариант не проканает, т.к. сайт висит на двух процессах, кэш одного не будет видеть кэш другого.А Вы на стороне сервиса кэшируйте свой "довольно тяжелый объект", что не хотите гонять по сети.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678151
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил
Это только если поменять InstanceContextMode на Single и мутить хранение объектов на стороне сервиса, допустим в кэше.
Но мне кажется это менее интересный вариант, чем использование в сервисе сессий.

skyANA
Как раз для кэширования в сервисе и был использован per session instance mode. Т.е. для каждого коннекта создается сессия и объект обрабатывается разными методами в рамках одной сессии, но надо как то сохранять инстанс.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678204
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ничё, что при перезапуске вебсервера пропадут все незакоммиченные пользователем "довольно тяжелые объекты"?
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678249
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей К

Неприятно конечно, но особо ничего страшного в потере кэша нет.
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678274
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tier,

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

что касается параметров - по ним искать на стороне сервиса нужный экземпляр и воссоздавать его в случае отсутсвия,

в этом случае ни сессий, ни токенов, ни прочих костылей не потребуется
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678480
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noname-tierАлексей К

Неприятно конечно, но особо ничего страшного в потере кэша нет.Ну а почему тогда не хочешь хранить "довольно тяжелые объекты" в БД? Тогда режим WCF PerCall + никаких неприятностей. Разве что подчищать в БД время от времени старые незакоммиченные объекты вероятно захочется. Но это не проблема...
...
Рейтинг: 0 / 0
Использование инстанса сервиса после посбэка
    #38678529
noname-tier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил
Так и сделал
Алексей К
В этом плане кэш интересней, выше скорость чтения записи и не надо ничего мудрить с очисткой.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Использование инстанса сервиса после посбэка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]