0

由于我使用的是 OWIN 身份验证,我不得不将 cms 放在不同的网站上。cmscms.domain.com在我的 domain.com VS 项目中,我只是将“piranha”连接字符串指向正确的数据库。到目前为止一切正常,我只需要更改 MediaProvider 即可处理 IMediaProvider 的 2 个检索方法的域名问题。

现在我正在尝试使用@UI.Menu帮助程序集成菜单,但是看起来帮助程序没有使用Web.Config文件的数据库(我从 检索帖子没有问题C#)。我只看到列出的开始页面。为了确认它,我还尝试更改站点描述cms.domain.com/manager并使用帮助程序显示它,@Site.Description但它仍然显示默认站点描述,所以它看起来真的像周围有另一个数据库..

HTML 助手使用的数据来自哪里?我该如何解决这个问题?

更新:似乎它实际上是一个缓存问题,它与连接字符串无关。

4

2 回答 2

1

Piranha CMS 缓存了大量元数据以提高性能并最大限度地减少与数据库的往返次数。站点信息站点地图是其中的两个,因为它们很可能会在每个页面渲染中使用。

默认缓存实现使用 IIS 缓存,它是每个应用程序池。在管理器界面中修改数据时缓存无效,但是如果您例如在另一个应用程序池(站点/应用程序)中运行管理器界面,这将使缓存失败,从而导致您描述的那种错误。

不确定您的应用程序是如何设置的,这是我的主要猜测。如果您实际上在不同的应用程序池中运行客户端 Web 和管理器,并且您需要继续这样做,您应该尝试以下方法之一。

  1. 实现分布式缓存提供程序
  2. 将系统参数设置CACHE_SERVER_EXPIRES为 1

将参数设置为 1 会使所有服务器缓存在分钟后失效。如果您希望网站有大量流量,当然不建议这样做,因为它或多或少会禁用缓存机制。

我希望这可以帮助你。

此致

哈坎

于 2014-12-30T22:32:17.790 回答
0

突然之间,它现在开始工作了。我记得做的唯一一件事是删除 dbo.page 表中的重复条目。现在一切正常,但是它没有解释为什么站点描述也没有正确检索。但没关系,我希望这对其他人有帮助。我希望自定义身份验证将内置在 Pihrana CMS 的下一个版本中!

于 2014-12-28T20:14:07.773 回答