====== Частые проблемы и их способы решения ======
===== При установке =====
==== Нет модуля установки системы на сервере заказчика ====
Это осознанное решение. \\
Мы не уверены, что сможем предусмотреть все возможные варианты установки приложения, если что-то уже стоит на сервере (например, Exchange). \\
Поэтому, чтобы ничего не сломать, этого не делаем.
====Не отправляется почта ====
//Не уходят [[product/subscribe/e-mail|уведомления пользователям на e-mail]] из ADVANT'ы. //
Для диагностики:
- установите почтовый клиент на сервер с IIS;
- создайте почтовый аккаунт с настройками аналогичными тем, которые указаны в [[product:settings:interface:smtp|настройках SMTP в ADVANTA]];
- проверьте работоспособность.
==== Ошибка SMTP ====
''The SMTP server requires a secure connection or the client was not authenticated. The server response was: From/Sender name is not valid '' - данная ошибка появляется, когда удалили пользователя из системы.
\\ Решение — из неотправленной почты нужно удалить сообщения, которые были привязаны к удаленному пользователю.
==== Безопасный запуск системы в инфраструктуре ====
- SQL:
- Создать специального пользователя, от имени которого система будет подключаться к базе данных. \\ //Никаких прав, кроме ''db_owner'' на базу не нужно.//
- Заблокировать все порты, кроме SQL.
- IIS:
- Создать пользователя в Active Directory, от имени которого будет запускаться пул приложений.
- Разрешить пользователю полный доступ к папке с документами, кэшем и логами.
==== Иконки в системе отображаются квадратами ====
IIS: добавить mime type .woff ([[product:settings:system:install#настройка_internet_information_services|см. инструкцию по установке]])
====Перенос системы на другой (другие) сервер(а) ====
Процесс переноса системы ничем не отличается от новой установки системы на новом сервере ([[product:settings:system:install|ссылка на документацию]]), за исключением того, что Вы используете свои данные (бэкап Базы Данных, web-контент, документы), а не из дистрибутива. Для переноса нужно выполнить следующие шаги:
- Заархивировать папку с дистрибутивом (по умолчанию C:\SL_Files) и перенести на новый сервер.
- Если документы хранились в другом каталоге (не C:\SL_Files), то необходимо также перенести папку с ними на новый сервер.
- Заархивировать web-контент системы (папка С:\inetpub\wwwroot\Streamline) и перенести в папку С:\inetpub\wwwroot\Streamline на новом сервере.
- Сделать бэкап Базы Данных системы (БД), заархивировать для переноса и скопировать архив на новый сервер баз данных и разархивировать его там.
- Выполнить Установку и настройку системы на новом сервере (или серверах).
- После установки и настройки системы, передать на портал технической поддержки файл ключа _sl.dat для получения файла лицензии.
- Установить службу таймера (a2schr.exe).
====Ошибки после переноса системы на другой сервер ====
//Не скачивается документ / отсутствуют иконки / фотографии и т.д//
- Проверить, что путь до документов указан корректно. Файл ''client.config'' должен быть в корневой папке. По умолчанию в папке: ''c:\inetpub\wwwroot\streamline''
- Проверить, что у пользователя, от имени которого запущен пул, есть полные права на папку, указанную как место хранения документов в файле ''client.config''.
====Система не может найти файл лицензии====
//Хотя файл есть, и необходимые права -- тоже.//
Проверить, что файл не заблокирован.
Довольно часто Windows автоматически блокирует файл, если он был скачан извне. Выполняться такой файл не будет => ошибка.
Зайдите в свойства файла -> "Разблокировать".
==== Интегратор MS Project - ошибка соединения с сервером ====
//Ошибка установки соединения с сервером, если используется самоподписный SSL сертификат//
Добавить сертификат на ПК пользователя в список доверенных корневых центров сертификации (Win+R -> ''mmc'' -> "Файл" -> "Добавить или удалить оснастку" -> добавьте здесь сертификат)
Проверяйте корректную установку сертификата через Internet Explorer, т.к. [[product:settings:system:distribs#интегратор_с_ms_project|интегратор]] использует движок IE. \\
Зайдите на сервер через IE. Если сообщение о недоверенном соединении не появилось, всё ок.
====Ошибка подключения к SQL серверу====
==="Не удалось найти сервер"===
Проверьте:
- настройки DNS сервера (если вы указываете доменное имя, а не ip-адрес);
- настройки самого SQL: чаще всего проблема встречается в редакциях SQL Express -- там есть преднастроенный инстанс. \\ При указании адреса SQL нужно указать не только доменное имя или IP, но и "named instance": доменное_имя\инстанс
Проверьте в SQL Server Configuration Manager, указан ли там инстанс;
- В SQL Server открыт порт 1433 ([[https://jakondo.ru/nastrojka-mssql-server-express-dlya-dostupa-iz-lokalnoj-seti/|ссылка на пример инструкции]]).
Как проверить соединение: установить Management Studio на сервер IIS, скопировать данные для подключения из файла client.config и проверить подключение.
==="У пользователя не хватает прав на запрос к БД"===
В некоторых версиях Management Studio: если создавать пользователя, и одновременно давать ему права доступа на базу – права на самом деле не даются.
- Зайдите в пользователя снова;
- еще раз назначьте права (db_owner);
- сохраните.
===Пользователю запрещен вход в SQL===
Проверьте, что в настройках SQL разрешена смешанная авторизация (SQL + Windows)
(Свойства сервера -> Безопасность -> SQL + Windows)
===При попытке разворачивания бэкапа - ошибки совместимости баз данных===
SQL базы обратно не совместимы через бэкап.
Нельзя развернуть копию базы, сделанной на 2012 SQL, на 2008. Но это можно сделать средствами копирования базы из одного инстанса SQL в другой.
https://jakondo.ru/nastrojka-mssql-server-express-dlya-dostupa-iz-lokalnoj-seti/
===== Во время эксплуатации =====
==== Резервное копирование системы ====
Организуйте бэкапы согласно вашим корпоративным регламентам.
Что нужно бэкапить:
- Документы – хранятся в папке, [[product:settings:system:install#настройка_системных_файлов|указанной в файле client.config]].
- База данных – SQL => настройте создание резервных копий штатными средствами SQL.
====Обеспечение отказоустойчивости====
=== IIS ===
Запустите Reverse proxy с балансировкой по отказу.
Система не поддерживает веб фермы. => Переключение с резервного сервера на основной должно быть **только ручным**, если у reverse proxy сработает ложный переход. \\
Если переключение на исходный сервер будет автоматическим, то без перезапуска ISS данные будут не действительные, система будет работать нестабильно и часть данных может быть утеряна.
===SQL===
Включите SQL AlwaysON.
[[https://docs.microsoft.com/ru-ru/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server?view=sql-server-2017|Подробно о технологии на официальном сайте Microsoft]].
===Документы===
Воспользуйтесь любым удобным способом обеспечения высокой доступности файлов. \\
Например, настройте бэкапы или используйте [[https://ru.wikipedia.org/wiki/Network_File_System|NFS]].
====Диагностика медленной работы системы ====
- Открыть монитор ресурсов, посмотреть на вкладке Обзор -> Диск -> Время ответа (мс). \\ Если время ответа больше 50-100 мс, то необходимо ускорять файловую подсистему.
- Посмотреть в диспетчере задач количество свободной оперативной памяти, при необходимости добавить.
См. также [[product/settings/productivity|подробно о методах и инструментах повышения производительности системы]].
=== SQL===
**Система не отвечает аномально долго** \\
//Аномально -- если, например, диаграмма Ганта всегда сохраняла этот проект за 1 минуту, а сейчас -- 10 минут// \\
Посмотрите монитор активности в SQL server на предмет наличия блокировок: поле "Главные причины блокировки" -> контекстное меню -> подробности -> скопировать текст и отправить его в поддержку.
**Отключите лог транзакций** \\
Переведите модель восстановления данных в Simple: свойства базы -> параметры -> модель восстановления -> simple.
====Система ведет себя по-разному на двух разных компьютерах ====
//В контексте функциональности самой системы.//
Удалите кэш браузера, отключите все расширения браузера
====Не удается создать реквизит, поменять дату у некоторых проектов и т.д.====
System.Data.SqlClient.SqlException: Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Проблема в том, что у пользователя в SQL, от имени которого осуществляется подключение к серверу баз данных, стоит язык отличный от русского.
Вне зависимости, какой язык стоит на рабочей станции пользователя, на каком языке ADVNTA, у пользователя SQL **должен быть язык "Russian"**.
Язык пользователя влияет на формат ответа некоторых типов данных в SQL Server. Например, дата. \\
У русского языка формат даты: День:Месяц:Год, у английского: Месяц:День:Год. \\
=> Если в ячейке стоит дата 25.01.2019, то при переводе на английский формат даты получается переполнение, т.к. месяцев 12, а не 25.
====Таймаут соединения====
//Если пользователь бездействует, через сколько минут происходит разрыв соединения.//
По умолчанию таймаут сессии пользователя 10 минут. Устанавливается в ''web.config'' в разделе ''sessionState'' в параметре ''timeout'' в минутах. Отсчет таймаут сессии пользователя начинается заново после каждого действия пользователя в системе. \\
Также есть таймаут кэша страницы, по умолчанию 10 минут. Отсчет таймаута кэша страницы начинается заново после каждого действия пользователя на странице или по запросу который автоматически посылается каждые 6 минут со страницы. \\
Сессия пользователя в любом случае будет продливаться автоматически, пока есть активные открытые страницы системы в браузере.
Сессия не будет рваться у пользователя, только если браузер с нашей системой все время будет активен, и будет связь с сервером с системой.
Например, если компьютер пользователя переходит в "Спящий режим", то браузер с открытыми страницами нашей системы перестанет посылать запросы на продление таймаута кэша страниц. => Cессия пользователя прервется по истечению таймаута.
Увеличение таймаута сессии пользователя и таймаута кэша страницы может привести:
* к чрезмерному потреблению памяти системой;
* к проблеме актуальности данных, с которыми работает пользователь, т.к. кэш страницы не синхронизируется с другими изменениями в системе.
Отдельное увеличение таймаута сессии пользователя может привести к потере данных введенных пользователем на странице системы после, например после выхода компьютера пользователя из "Спящего режима", т.к. сработал таймаута кэша страницы и страница будет перезагружена при первом действии пользователя, которое отправит синхронный запрос на сервер.