7

フィードが必要な Web アプリ (asp.net) があります。そこで、System.ServiceModel.Syndication名前空間を使用して「ニュース」を作成する関数を作成しました。問題は、誰かがそれを呼び出すたびに実行されることです.xmlファイルを作成し、rss urlがそのファイルを指すようにするためだけに使用する必要がありますか?

最善のアプローチは何ですか?

編集:多分それは私が間違っているところです。私はハンドラーを使用していません... データで Rss20FeedFormatter を返す WCF サービスを使用しているだけです。

4

3 に答える 3

8

過去に RSS を実装したとき、RSS データを HttpContext.Current.Cache にキャッシュしました。

通常、RSS データはそれほど頻繁に更新する必要はありません (たとえば、1 分に 1 回で十分です)。そのため、誰かが RSS データを要求するたびにではなく、実際には 1 分に 1 回 DB にアクセスするだけで済みます。

キャッシュの使用方法の例を次に示します。

// To save to the cache
HttpContext.Current.Cache.Insert("YourCachedName", pObjectToCache, null, DateTime.UtcNow.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration);
// To fetch from the cache
YourRssObject pObject = HttpContext.Current.Cache[("YourCachedName"] as YourRssObject : null;

ashx で次のように設定することもできます。

context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(1));

これにより、RSS ページは有効期限が切れるまでキャッシュされたバージョンを提供します。これにはさらに少ないリソースしか必要としませんが、RSS データ アクセス レイヤー呼び出しを使用する他のものがある場合、そのデータはキャッシュされません。

次のように設定することで、RSS が受け取る可能性のあるクエリ パラメータに基づいてキャッシュすることもできます。

context.Response.Cache.VaryByParams["YourQueryParamName"] = true;
于 2009-05-28T18:30:49.517 に答える
1

ASP.Net には、かなり優れたサーバー側キャッシュが組み込まれています。これらのクラスを通常の aspx ページまたは http ハンドラー (ashx) の一部として使用していると仮定すると、ASP.Net に再構築するのではなく積極的にキャッシュするように指示できます。リクエストごとにフィードします。

于 2009-05-28T18:19:18.790 に答える
0

あなたの .aspx ページでは、次のものを使用することはできません:

<%@ OutputCache Duration="60" VaryByParam="none" %>

ストアド プロシージャの結果を RSS フィードとして携帯電話に送信するブログ投稿があります

于 2011-01-08T01:51:54.413 に答える