2016-11-28 2 views
0

Я пытаюсь импортировать содержимое с нашего сервера UAT на наш производственный сервер.Ошибка EPiServer во время импорта: System.ArgumentException: не может совпадать с адресом назначения

База данных Production изначально была клонирована из базы данных UAT, обе базы кода одинаковы.

Моя процедура при экспорте/импорта действительно прямо вперед, первый: http://screencast.com/t/UkT1W7t7g

Затем я получить окончательный файл (7MB +) со всем содержимым из ЕСХН, то я иду к производству и выберите следующее: http://screencast.com/t/UkT1W7t7g

при нажатии на импорт я получаю следующее сообщение об ошибке: http://screencast.com/t/lgr7jeFX

Это то, что я получаю в журнале ошибок:

2016-11-28 10:31:04,995 [5] ERROR EPiServer.Core.Transfer.TransferLogger: 10.5.3 Export/import error: Exception: Cannot be the same as destination 
Parameter name: contentLinkID 
System.ArgumentException: Cannot be the same as destination 
Parameter name: contentLinkID 
at EPiServer.DataAccess.ContentSaveDB.Move(Int32 contentLinkID, Int32 destinationLinkID, Boolean archive) 
at EPiServer.DataAbstraction.ContentStore.Move(Int32 contentLink, Int32 destinationLinkID, Boolean archive) 
at EPiServer.DefaultContentProvider.Move(ContentReference contentReference, ContentReference destinationLink) 
at EPiServer.Core.Transfer.ContentTransfer.MoveContent(IContent content, ContentReference parentLink, AccessLevel requiredDestinationAccess) 
at EPiServer.Core.Transfer.ContentTransfer.Import(RawContent rawContent, AccessLevel requiredDestinationAccess, Guid& importedPageGuid) 
at EPiServer.Core.Transfer.ContentTransfer.Import(ITransferContentData content, AccessLevel requiredDestinationAccess) 
at EPiServer.Enterprise.DataImporter.ImportContents[T](XmlTextReader reader, ZipPackage package) 
at EPiServer.Enterprise.DataImporter.ImportStream(ZipPackage package, XmlTextReader reader, String partName) 
at EPiServer.Enterprise.DataImporter.ImportPartOfPackage(ZipPackage package, String partName) 
at EPiServer.Enterprise.DataImporter.ImportRaw(ZipPackage package) 
at EPiServer.Enterprise.DataImporter.Import() 
System.ArgumentException: Cannot be the same as destination 
Parameter name: contentLinkID 
at EPiServer.DataAccess.ContentSaveDB.Move(Int32 contentLinkID, Int32 destinationLinkID, Boolean archive) 
at EPiServer.DataAbstraction.ContentStore.Move(Int32 contentLink, Int32 destinationLinkID, Boolean archive) 
at EPiServer.DefaultContentProvider.Move(ContentReference contentReference, ContentReference destinationLink) 
at EPiServer.Core.Transfer.ContentTransfer.MoveContent(IContent content, ContentReference parentLink, AccessLevel requiredDestinationAccess) 
at EPiServer.Core.Transfer.ContentTransfer.Import(RawContent rawContent, AccessLevel requiredDestinationAccess, Guid& importedPageGuid) 
at EPiServer.Core.Transfer.ContentTransfer.Import(ITransferContentData content, AccessLevel requiredDestinationAccess) 
at EPiServer.Enterprise.DataImporter.ImportContents[T](XmlTextReader reader, ZipPackage package) 
at EPiServer.Enterprise.DataImporter.ImportStream(ZipPackage package, XmlTextReader reader, String partName) 
at EPiServer.Enterprise.DataImporter.ImportPartOfPackage(ZipPackage package, String partName) 
at EPiServer.Enterprise.DataImporter.ImportRaw(ZipPackage package) 
at EPiServer.Enterprise.DataImporter.Import() 

Я не понимаю, в чем проблема, любая помощь действительно ценится.

PD: Я уже задавала тот же на EPiServer Dev Forum http://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2016/11/error-during-import-system-argumentexception-cannot-be-the-same-as-destination

+0

Если вы экспортируете страницу _below_ в корневую страницу, но затем выберите корневую страницу в качестве цели импорта, это работает? По сути, ваш экспортированный пакет будет импортирован _below_ выбранный вами узел при импорте. –

+1

Я вижу ваш вопрос, и я попробовал. Это работает :) ... но :(... в нашей текущей реализации есть только одна страница (home/start), а остальные - это блоки контента, которые затем обрабатываются через Web API, чтобы доставлять контент на передний план, end, так или иначе, если я сделаю то, что вы скажете мне, я получаю всего 15 элементов контента (которые являются самой домашней страницей и некоторыми блоками, которые ее составляют), у нас есть 9000+ элементов контента. Спасибо! – a4bike

+0

Отлично! больше информации в качестве ответа. –

ответ

1

I Это то, что происходит?

Ваш экспортированный пакет будет импортирован ниже выбранный вами узел при импорте - не перезаписывать выбранный целевой узел.

Например, вы можете экспортировать стартовую страницу под корневой страницей в UAT, а затем выбрать Root в качестве места назначения на производстве. При импорте стартовая страница будет ниже страница Root.

Ошибка возникает при экспорте Root страницы в среде UAT, а затем пытается экспортировать этот в на Root страницу в производственной среде.

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

+1

Спасибо за объяснение Тед. См. Мой подробный ответ ниже (http://stackoverflow.com/a/40894220/869569) о шагах, которые я сделал на основе вашего ответа, так как это сделало работу, по которой я отмечаю ваш ответ как принятый. – a4bike

0

Эта ошибка возникает, когда contentLinkID равна destinationLinkID

Отраженный код подтверждает

public void Move(int contentLinkID, int destinationLinkID, bool archive) 
{ 
    if (contentLinkID == destinationLinkID) 
    { 
     throw new ArgumentException("Cannot be the same as destination", "contentLinkID"); 
    } 
// ... 

Проверьте файлы журналов EPiServer, они сообщит вам, какой contentLinkID вызывает ошибку.

Лучшее предположение, что пул приложений счет

  1. не имеет достаточных прав на базу данных или в файловой системе
  2. пула приложений не может писать или обновлять файлы в App_Data

Как правило, это то, где большинство людей сдаются, вместо этого вместо этого переносит Episerver, используя резервное копирование/восстановление базы данных. Однако, если вы действительно хотите поработать с полным кретином, я предлагаю настроить импорт, проверьте статью Patrick van Kleef о миграции контента http://www.patrickvankleef.com/2015/08/18/episerver-content-migration/.

Это вопрос, который Epissver действительно должен исправлять как можно скорее!

+0

Привет, Эрик, я протестировал идею прав на файловые системы, запустив решение из моей локальной Visual Studio (работающей с полными правами администратора), напрямую подключенного к базе данных Production, и получил точно такую ​​же ошибку. – a4bike

+0

Вы пытались экспортировать/импортировать файлы без файлов? –

+0

Да, я никогда не добавляю чек на «Экспорт файлов, к которым страницы ссылаются на« http: //screencast.com/t/FgHRnOhu auR, я также дважды проверил разрешение файловой системы и даже избавился от всех файлов в App_Data/blobs, чтобы гарантировать, что это не конфликт при перезаписывании или проверке его существования в целевой файловой системе, эти эксперименты привели к тому же выпуску, то же исключение , Спасибо за ваши идеи. – a4bike

1

Спасибо за explanation Тед. Я сделал следующее, и она работала:

В УАТ

Экспорт начинается: http://screencast.com/t/FgHRnOhuauR с «Экспорт файлов, что страницы ссылаются на» непроверенный.

Экспорт заканчивается: пункты http://screencast.com/t/aPe0Ntvb9aq

10583 контента были экспортированы в файл.

Затем в производстве

Импорт начинается: http://screencast.com/t/qqkBsL731P с «Обновление существующих элементов контента с соответствующими ID» проверяемых.

Импорт в незавершенном: http://screencast.com/t/reSfMnCV8

Одна вещь, которую я заметил, что в конце он говорит, что обновляется только часть элементов контента, на самом деле я сделал это несколько раз, как UAT активно отредактирован и получил результаты с 28, 16, 1 или 8 предметами, импортированными (из 10500+). Я думаю, это потому, что они были единственными с изменениями или новыми элементами.

Я проверил несколько блоков, которые, как я знал, были обновлены, и они соответствовали новой версии после импорта.

Как это сделал работа я маркировка Ted´s answer как принято.

Я думаю, что это путает выбор элементов в дереве контента, так как я хотел взять все из корня и перенести его в корневой каталог на другом сервере, но, похоже, это не так, как это работает.

+0

Недавнее обновление, которое может решить эти ошибки http: //world.episerver.ком/блоги/Johan-Bjornfot/Dates1/2016/11/exportimport-improvments / –

Смежные вопросы