JavaScript, в отличие от PHP, имеет очень строгое поведение для массивов, так как они всегда численно индексируются.
В вашем коде у вас есть:
let todoItem = []
todoItem['modified'] = $("#modified_" + i).val();
Это недопустимо, потому что у вас есть массив, но вы пытаетесь использовать его как объект. Это просто создаст пользовательские свойства объекта массива, но на самом деле ничего не добавит к базовому массиву. Это должно быть видно в консоли, где ваш todosList
массив представляет собой массив из 3 массивов длины 0.
Вы можете заставить это работать, сделав:
let todosList = [];
for (let i = 0; i < todos_count; i++) {
let todoItem = {
modified: $("#modified_" + i).val(),
todo_text: $("#todo_text_" + i).val(),
todo_priority: $("#todo_priority_" + i).val(),
todo_completed: $("#todo_completed_" + i).val()
}; //Object initialiser
todosList.push(todoItem);
}
Остальная часть кода должна работать как есть
Вы могли отправить остальную часть Вашего кода для хостинга сервиса?
Ваш класс, который запускает сервис, должен наследоваться "ServiceBase" и должен реализовать "OnStart" и методы "OnStop". Эти методы вызываются сервисной консолью, чтобы запустить и остановить сервисный процесс, таким образом, Ваш ServiceHost должен быть открыт/закрыт в этих методах. Просто задавшись вопросом, не делаете ли, возможно, Вы этого.
Какая учетная запись услуга работает как? Интересно, не удается ли сервису запуститься, вероятно, из-за не наличия полномочий открыть порт.
Попытайтесь выполнить сервис в своих собственных идентификационных данных (но как услуга). Если это работает, это - проблема полномочий. Наиболее вероятными являются полномочия HTTP.SYS.
Для присвоения доступа Вы используете netsh на перспективе/окне 7, или httpcfg на xp.
Если бы Вы находитесь на той же машине, я предложил бы использовать NetNamedPipeBinding вместо WSHttpBinding. Это быстрее. Можно всегда возвращаться к ws-http при необходимости в использовании перекрестной машины в будущем.
Удостоверьтесь, что Ваша услуга на самом деле работает через TaskManager. В противном случае поместите Отладчик. Повреждение () оператор в конструкторе Вашего сервиса и шаге до находки, где этому не удается запуститься. Вот краткое пошаговое для создания сервиса Windows NT в C# (при необходимости в нем).
Где Вы брали код, из которого создает сервисный хост? Мое предположение кулака было бы то, что, когда Вы выполняете его как услуга Вы или не создаете ServiceHost, или Вы не сохраняете ссылку на него (таким образом, это собрано "мусор"),
Ничто в конечном счете не регистрируется об отказе зарегистрировать адрес?
Вы пытались отладить сервис (использующий присоединение Visual Studio к процессу)?
Вы проверили, что Вам определили ту конфигурацию в файлах конфигурации и для приложения WinForms и для сервиса?