Sitecore 6 — невозможно удалить основную базу данных на серверах доставки контента

Привет всем, у меня небольшая проблема с нашими серверами доставки контента. Мы не можем удалить основную базу данных, не взорвав ее. Наша текущая информация ниже:

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

Похоже, что когда History Manager инициализируется, в какой-то момент он запрашивает информацию из главной базы данных. Может ли кто-нибудь помочь мне отследить, где возникает эта проблема?

Заранее спасибо,

-Том

Обновление №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

person dasginganinja    schedule 12.03.2013    source источник
comment
Вы удалили фактическое объявление базы данных или просто удалили строку подключения?   -  person Blair Scott    schedule 13.03.2013
comment
Трассировка стека в обновлении № 1 выглядит как что-то в LuceneSearchBox.Page_Load активно пытается получить главную базу данных. Там есть что-нибудь?   -  person Matt    schedule 15.03.2013
comment
Я изменил ссылки, чтобы вместо этого обращаться к веб-базе данных. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я ищу, у нас нет результатов. Я предполагаю, что мне нужно выполнить некоторую настройку, чтобы в этот момент он сам генерировал индексацию.   -  person dasginganinja    schedule 15.03.2013


Ответы (6)


Ваша конфигурация поискового индекса, вероятно, содержит ссылки как на основную, так и на веб-базу данных. Вам нужно будет исправить или заменить его на сервере компакт-дисков, чтобы просто указать местоположение веб-базы данных.

person nickwesselman    schedule 12.03.2013
comment
Я обнаружил, что внутри любого из файлов Lucene он пытается запустить Factory.GetDatabase("master");, что вызывает проблемы, с которыми мы сталкиваемся прямо сейчас. Насколько мне известно, настройка конфигурации должна заключаться в том, что Lucene просматривает веб-базу данных для поиска. Когда я устанавливаю его на Factory.GetDatabase("web");, я не получаю никаких жалоб от системы, однако я также не получаю никаких результатов в своих поисках. Сегодня вечером я изучу конфигурацию поискового индекса, чтобы посмотреть, что я могу сделать завтра. Спасибо за шаг в правильном направлении. - person dasginganinja; 13.03.2013

LuceneSearch.LuceneSearch.LuceneSearchBox.Page_Load() имеет жестко закодированную ссылку на основную БД. Перекомпилируйте без этого или не развертывайте DLL, в которой находится этот код программной части.

person Mark Ursino    schedule 13.03.2013

Если вы скопируете SwitchMasterToWeb.Config в app_config\include, ссылки на базу данных master должны быть удалены. Если вы его уже скопировали, то проверьте, не допустили ли вы ошибку копирования-вставки при настройке движка истории.

person Remco van Toor    schedule 12.03.2013
comment
Хорошо. Я мог бы поклясться, что он у нас был там, когда мы впервые попробовали это, но мой коллега, должно быть, удалил его. Теперь, когда я добавил это, я получаю еще одну ошибку от Lucene Search. Я обновлю основной вопрос с ним. - person dasginganinja; 13.03.2013

Если вы хотите удалить базу данных master для производственной среды, вам необходимо также помнить об обновлении конфигурации среды (переназначение каждого сайта в базу данных веб, удаление >основные индексы баз данных и архивы и т. д.).

Вот документация, объясняющая, как настроить производственную среду Sitecore. Он написан для Sitecore 6.0, но работает точно так же и в более новых версиях. Глава 1.2.1 объясняет, что вам нужно сделать, чтобы удалить базу данных master:

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

person Marek Musielak    schedule 12.03.2013
comment
Я собираюсь прочитать об этом. Похоже, что модуль Lucene для поиска хочет использовать основную базу данных. - person dasginganinja; 13.03.2013

Перейдите на страницу www.yoursite.com/sitecore/admin/showconfig.aspx, чтобы просмотреть текущую конфигурацию. Выполните текстовый поиск «мастер» или проверьте разделы

<indexes>

а также

<Engines.HistoryEngine.Storage>

Вероятно, у вас есть параметр, который по-прежнему указывает на базу данных master. Он может быть включен одним из включаемых файлов в каталоге /App_Config/.

person Martijn van der Put    schedule 12.03.2013
comment
Это очень полезно. Спасибо. - person dasginganinja; 15.03.2013

Я удалил файл «Sitecore.ContentSearch.Lucene.Index.Master.config» из каталога App_Config, и это решилось для меня. Я пытался настроить сторону LaunchSitecore, используя среды CM и CD.

person sbkrogers    schedule 11.04.2014