Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Root element is missing
Фронт не може створити індекс у БД
В error.log бачимо:
[2024-02-10 21:33:35,399] ERROR [ 3] [ObjectStateSaver:LoadObjectWithLogger:257] - Error on load object state: System.InvalidOperationException: There is an error in XML document (0, 0). ---> System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlTextReader.Read()
   at System.Xml.XmlReader.MoveToContent()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read21_config()
А в CashServer.log бачимо:
System.Data.SqlServerCe.SqlCeException (0x80004005): The specified index does not exist. [ PK_UploadQueue ]
   at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr)
У нашому випадку сама помилка The specified index does not exist.
Тобто фронт не може створити індекс у БД.

Причина такої помилки: задубльовані індекси в одній із таблиць.
У якій саме: відповідь дає вже CashServer.log: у нашому випадку читаємо з лога:
[ PK_UploadQueue ] = таблиця UploadQueue.
Простими словами ми маємо задубльовані індекси у цій таблиці.
На даний момент ми з'ясували саму помилку, а саме: у таблиці UploadQueue є задубльовані індекси, через що фронт не може створити потрібні записи у БД на старті – і падає у помилку.

Вирішення:
1) Знайти дубль xml-ки.
SELECT [Index] FROM [UploadQueue]
group by [Index]
having count ([Index])>1
На виході отримаємо таблицю з якимось одним (зазвичай значенням)
В цьому випадку було значення "1025"
Важливо розуміти, що Index = це просто один із стовпців у таблиці UploadQueue
2) Знайти id цієї xml-ки
SELECT *
FROM [UploadQueue]
Where [Index] in (1025)
На виході ми отримаємо 2 xml-ки (нагадую, що у нас дубль індексів)
3) Видалити дубль xml-ки.
Копіюємо ID будь-якого з них (на ваш смак) - і видаляємо одну з цих XML скриптом:
DELETE
FROM [UploadQueue]
Where id = 'XXX'
4) Відновлюємо записи БД.
ALTER TABLE [UploadQueue] ADD CONSTRAINT [PK_UploadQueue] PRIMARY KEY NONCLUSTERED (
[Index]
)
Профіт, фронт стартує!