kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Hertanto Lie
Hertanto Lie
Вопрос

лучший способ сохранения данных в веб-службе .NET

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

Обновление: Оба предложения, кэширование и использование статических переменных, выглядят хорошо. Возможно, мне стоит использовать оба варианта, чтобы сначала посмотреть на один, и если его там нет, использовать второй, если его там тоже нет, тогда я посмотрю на json-файл.

4 2008-08-14T23:13:32+00:00 4
 alvonellos
alvonellos
Редактировал вопрос 8-го марта 2014 в 11:45
Программирование
persistence
web-services
.net
memory
json
Решение / Ответ
Mark Glorie
Mark Glorie
15-го августа 2008 в 12:32
2008-08-15T00:32:04+00:00
Дополнительно
Источник
Редактировать
#8415458

Продолжая идею Ice^^Heat', вы можете подумать о том, где вы будете кэшировать - либо кэшировать содержимое json-файла в кэше приложений, например, так:

Context.Cache.Insert("foo", _
                 Foo, _
                 Nothing, _
                 DateAdd(DateInterval.Minute, 30, Now()), _
                 System.Web.Caching.Cache.NoSlidingExpiration)

И затем генерировать из него нужные вам результаты при каждом обращении. В качестве альтернативы вы можете кэшировать вывод веб-сервиса в определении функции:

<WebMethod(CacheDuration:=60)> _
Public Function HelloWorld() As String
    Return "Hello World"
End Function

Информация взята из XML Web Service Caching Strategies.

 Community
Community
Редактировал ответ 23-го мая 2017 в 12:32
5
0
Hertanto Lie
Hertanto Lie
14-го августа 2008 в 11:39
2008-08-14T23:39:07+00:00
Дополнительно
Источник
Редактировать
#8415457

Как насчет использования глобального или статического объекта коллекции? Хорошая ли это идея?

3
0
Анонимный пользователь
14-го августа 2008 в 11:29
2008-08-14T23:29:27+00:00
Дополнительно
Источник
Редактировать
#8415456

Кэширование ASP.NET работает так же хорошо с веб-службами, поэтому вы можете реализовать обычное кэширование, как описано здесь: http://msdn.microsoft.com/en-us/library/aa478965.aspx

2
0
 Seibar
Seibar
15-го августа 2008 в 2:36
2008-08-15T02:36:03+00:00
Дополнительно
Источник
Редактировать
#8415459

Повторить klughing, если Ваши данные JSON isn' t ожидал изменяться часто, я думаю, что самый простой способ припрятать его про запас состоит в том, чтобы использовать статическую коллекцию некоторого вида - возможно, DataTable.

Во-первых, разберите свои данные JSON в Систему. Данные. DataTable, и делают его статичным в Вашем классе веб-сервиса. Затем получите доступ к статическому объекту. Данные должны остаться припрятавшими про запас, пока IIS не перерабатывает Ваш прикладной фонд.

public class WebServiceClass
{
    private static DataTable _myData = null;
    public static DataTable MyData
    {
        get
        {
            if (_myData == null)
            {
                _myData = ParseJsonDataReturnDT();
            }
            return _myData;
        }
    }

    [WebMethod]
    public string GetData()
    {
        //... do some stuff with MyData and return a string ...
        return MyData.Rows[0]["MyColumn"].ToString();
    }
}
 Community
Community
Редактировал ответ 23-го мая 2017 в 12:09
2
0
Похожие сообщества 12
DotNetRuChat
DotNetRuChat
6 652 пользователей
Чат русскоязычного .NET сообщества http://dotnet.ru/ Правила: https://t.me/DotNetRuChat/704399 Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia, @DotNetRuJobs, @uwp_ru Флуд в @dotnettalks
Открыть telegram
Вакансии .NET
Вакансии .NET
3 530 пользователей
Правила: https://t.me/DotNetRuJobs/123 Канал с вакансиями - https://t.me/DotNetRuJobsFeed Вам могут быть интересны: @dotnetruchat, @cilchat, @fsharp_chat, @pro_net, @AvaloniaRU, @xamarin_russia Флуд в @dotnettalks
Открыть telegram
pro.net
pro.net
1 820 пользователей
Обсуждение .NET и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). https://t.me/pro_net/34653 Флудилка: @dotnettalks
Открыть telegram
var chat = new Chat();
var chat = new Chat();
1 428 пользователей
Обсуждение вопросов по .NET Правила чата – https://blog.devdigest.today/chat-rules Чат для флуда – https://t.me/+zwxI91RGG6s2YzAy
Открыть telegram
.NET Talks - День сурка
.NET Talks - День сурка
1 324 пользователей
Свободный чат .NET разработчиков. Правила: https://t.me/dotnettalks/548269 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @DotNetRuJobs, @uwp_ru, @AvaloniaRu, @dotnettalksenglish
Открыть telegram
Чат конференции DotNext
Чат конференции DotNext
987 пользователей
Канал конференции: @dotnext_channel Ближайшая конференция — DotNext 2022 Autumn, даты будут анонсированы позднее Билеты https://tinyurl.com/DotNext2023Autumn Саппорт: @JUGConfSupport_bot
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией