【问题标题】:Sitecore 6 - Unable to remove master database on Content Delivery ServersSitecore 6 - 无法删除内容交付服务器上的主数据库
【发布时间】:2013-03-12 21:39:43
【问题描述】:

大家好,我的 Content Delivery 服务器有点问题。我们无法删除主数据库而不使其崩溃。我们目前的信息如下:

Sitecore.NET 6.5.0 (rev. 111230)
December 30, 2011
.NET Framework 4.0.30319.239
Database version: 500

我们收到的错误和堆栈跟踪是:

[InvalidOperationException: Unknown connection string. Name: 'master']
   Sitecore.Configuration.Settings.GetConnectionString(String connectionStringName) +364
   Sitecore.Configuration.Factory.CreateFromConnectionStringName(XmlNode configNode, String[] parameters, Boolean assert) +106
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +164
   Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +110
   Sitecore.Configuration.Factory.GetConstructorParameters(XmlNode configNode, String[] parameters, Boolean assert) +209
   Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +94
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +141
   Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +424
   Sitecore.Configuration.Factory.CreateFromReference(XmlNode configNode, String[] parameters, Boolean assert) +194
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +118
   Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert) +930
   Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper) +581
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +296
   Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +424
   Sitecore.Configuration.Factory.GetDatabase(String name, Boolean assert) +185
   Sitecore.Configuration.Factory.GetDatabases() +152
   Sitecore.Data.Managers.HistoryManager.InitializeEventHandlers() +49
   Sitecore.Pipelines.Loader.InitializeManagers.Process(PipelineArgs args) +14
   (Object , Object[] ) +80
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +191
   Sitecore.Nexus.Web.HttpModule.Application_Start() +146
   Sitecore.Nexus.Web.HttpModule.Init(HttpApplication app) +603
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +575
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +352
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +407
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +375

[HttpException (0x80004005): Unknown connection string. Name: 'master']
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11700608
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4868805

当历史管理器初始化时,它似乎在某个时刻从主数据库请求信息。谁能帮我找出这个问题发生在哪里?

提前致谢,

-汤姆

更新 #1

将 SwitchMasterToWeb.config 添加到 app_config/include 文件夹后,我现在收到以下消息:

[InvalidOperationException: Could not find configuration node: databases/database[@id='master']]
   Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String message) +57
   Sitecore.Configuration.Factory.GetConfigNode(String xpath, Boolean assert) +279
   Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert) +144
   Sitecore.Configuration.Factory.GetDatabase(String name) +169
   LuceneSearch.LuceneSearch.LuceneSearchBox.Page_Load(Object sender, EventArgs e) in C:\xyz\Website\sitecore modules\LuceneSearch\LuceneSearchBox.ascx.cs:29
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Control.LoadRecursive() +190
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064

【问题讨论】:

  • 您是删除了实际的数据库声明还是只是删除了连接字符串?
  • update#1 中的堆栈跟踪看起来像 LuceneSearchBox.Page_Load 中的某些东西正在积极尝试获取主数据库。里面有东西吗?
  • 我已将引用更改为查看 Web 数据库。我现在遇到的问题是,当我搜索时,我们没有结果。我假设我需要做一些配置,以便此时它自己生成索引。

标签: database connection-string sitecore sitecore6 master


【解决方案1】:

您的搜索索引配置可能包含对主数据库和网络数据库的引用。您需要在 CD 服务器上对其进行修补或替换,以仅包含 Web 数据库位置。

【讨论】:

  • 我在这里发现的是,在任何 Lucene 文件中,它试图运行 Factory.GetDatabase("master");,这导致了我们现在遇到的问题。据我所知,配置设置应该是 Lucene 查看 Web 数据库进行搜索。当我将其设置为Factory.GetDatabase("web"); 时,我没有收到系统的任何投诉,但是我的搜索也没有得到任何结果。今晚我将研究搜索索引配置,看看我明天能做什么。感谢您朝着正确的方向迈出了一步。
【解决方案2】:

LuceneSearch.LuceneSearch.LuceneSearchBox.Page_Load() 具有对 ma​​ster 数据库的硬编码引用。不使用此代码重新编译或不部署此代码隐藏所在的 DLL。

【讨论】:

    【解决方案3】:

    如果您在 app_config\include 中复制 SwitchMasterToWeb.Config,则应删除对主数据库的引用。 如果您已经复制了它,请检查您在配置历史引擎时是否犯了复制粘贴错误。

    【讨论】:

    • 好的。我本可以发誓我们第一次尝试时就将它放在那里,但我的同事一定把它拿走了。现在我已经添加了它,我收到了来自 Lucene Search 的另一个错误。我会用它来更新主要问题。
    【解决方案4】:

    如果您想删除生产环境的 ma​​ster 数据库,您还需要记住更新环境的配置(将每个站点重新指向 web 数据库,删除 ma​​ster 数据库索引和档案等)。

    这里是解释如何配置 Sitecore 生产环境的文档。它是为 Sitecore 6.0 编写的,但在较新版本中的工作方式相同。第 1.2.1 章解释了删除 ma​​ster 数据库需要做什么:

    http://sdn.sitecore.net/upload/sdn5/developer/configuring%20production%20environments/configuring%20production%20environments.pdf

    【讨论】:

    • 我会读到这个。似乎用于搜索的 Lucene 模块正在寻找使用主数据库。
    【解决方案5】:

    转到 www.yoursite.com/sitecore/admin/showconfig.aspx 查看您当前的配置。 对“master”进行文本搜索或检查部分

    <indexes>
    

    <Engines.HistoryEngine.Storage>
    

    您可能有一个仍然指向主数据库的设置。它可能包含在 /App_Config/ 中的一个包含文件中

    【讨论】:

    • 这非常有用。谢谢。
    【解决方案6】:

    我从 App_Config 目录中删除了“Sitecore.ContentSearch.Lucene.Index.Master.config”文件,这为我解决了。我正在尝试使用 CM 和 CD 环境设置 LaunchSitecore。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2023-03-20
      • 1970-01-01
      • 2020-05-13
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      相关资源
      最近更新 更多