0

OWIN 認証を使用しているため、cms を別の Web サイトに配置する必要がありました。cms はcms.domain.comdomain.com の私の VS プロジェクトにあり、単純に「ピラニア」接続文字列を正しいデータベースに向けました。これまでのところ、すべてが完全に機能していました。MediaProvider を変更して、IMediaProvider の 2 つの取得メソッドのドメイン名の問題に対処するだけで済みました。

現在、ヘルパーを使用してメニューを統合しようとしています@UI.Menuが、ヘルパーがWeb.Configファイルのデータベースを使用していないようです (から投稿を取得するのに問題はありませんC#)。スタート ページしか表示されません。それを確認するために、サイトの説明を変更cms.domain.com/managerしてヘルパーで表示しようとしました@Site.Descriptionが、デフォルトのサイトの説明がまだ表示されているため、実際には別のデータベースがあるように見えます..

HTML ヘルパーが使用するデータはどこから来るのですか? そして、どうすればそれを修正できますか?

更新:実際にはキャッシュの問題のようです。接続文字列とは関係ありません。

4

2 に答える 2

1

Piranha CMS caches a lot of meta-data for performance and to minimize the round-trips to the database. The site information, as well as the sitemap is two of these things as these will most likely be used in every page-rendering.

The default cache implementation uses the IIS cache, which is per application pool. The cache is invalidated when data is modified in the manager interface, but if you for example would run the manager interface in another application pool (site/application) this will make the caching fail, causing the kind of errors you describe.

Not being sure how your application is set up, this is my primary guess. If you are in fact running the client web & the manager in different application pools, and you need to continue doing this you should try one of the following approaches.

  1. Implement a distributed cache provider
  2. Set the system param CACHE_SERVER_EXPIRES to 1

Setting the param to 1 invalidates all server cache after one minute. This is of course not to recommend if you are expecting a lot of traffic to your site as it will more or less disable the caching mechanism.

I hope this helps you.

Best regards

Håkan

于 2014-12-30T22:32:17.790 に答える
0

突然、それが機能するようになりました。私が行ったことを覚えている唯一のことは、dbo.page テーブル内の重複するエントリを削除することです。現在はすべて機能していますが、サイトの説明が適切に取得されなかった理由も説明されていません。しかし、気にしないでください。これが他の誰かに役立つことを願っています。Pirhana CMS の次のリリースでカスタム認証が組み込まれることを願っています。

于 2014-12-28T20:14:07.773 に答える