Загрузка RSS на моем сайте ASP.NET может быть очень долгой (ненормальной) - PullRequest
1 голос
/ 26 марта 2012

У меня есть веб-сайт, и время загрузки домашней страницы иногда необычно велико, не каждый раз, это кажется немного случайным, и я не могу определить шаги, чтобы воспроизвести эту ошибку. Веб-сайт может работать без проблем в течение 2 недель и быть очень медленным на следующий день ... После некоторых исследований выяснилось, что это происходит из одного из моих модулей, который отображает новостную ленту, из feedburner xml. Вот код, который я использую для загрузки feedburner xml:

    try
    {
        this.XmlDataSource1.DataFile = "http://feeds.feedburner.com/*****";
        this.XmlDataSource1.XPath = "rss/channel/item";

        this.XmlDataSource1.DataBind();
        this.Repeater1.DataBind();

    }
    catch (Exception exc)
    {
        LabelError.Visible = true;
        LabelError.Text += "<br /><span style='color:#FFF'>"+exc.Message+"</span>";
    }

когда я получаю сообщение об ошибке, возникает исключение, и выдается следующее сообщение: «Срок действия лицензии истекает». это можно перевести как: «Тайм-аут транзакции истек». В Интернете я нашел ответ, в котором говорилось, что число открытых соединений с удаленным сервером достигнуто, и мне пришлось явно закрыть постоянные соединения. Но я не понимаю, в отличие от SQLConnection, я ничего не .Open (), и я не вижу, как .Close () это, я могу ошибаться, но я не могу поверить, что feedburner недоступен (вы знаете, это google-серверы)

любая помощь будет оценена :) спасибо!

1 Ответ

0 голосов
/ 11 апреля 2012

Решено с использованием кэша asp.net:

<%@ OutputCache Duration="7200" VaryByParam="*" %>

, когда кто-то загружает страницу, она будет загружена из кэша.этот кэш длится 2 часа (7200 секунд), и если rss не загружается при кэшировании страницы, я использую javascript асинхронную загрузку своего RSS-канала.Скрипт выводится в блоке catch

...