Частые проблемы и их способы решения

Это осознанное решение.
Мы не уверены, что сможем предусмотреть все возможные варианты установки приложения, если что-то уже стоит на сервере (например, Exchange).
Поэтому, чтобы ничего не сломать, этого не делаем.

Не уходят уведомления пользователям на e-mail из ADVANT'ы.

Для диагностики:

  1. установите почтовый клиент на сервер с IIS;
  2. создайте почтовый аккаунт с настройками аналогичными тем, которые указаны в настройках SMTP в ADVANTA;
  3. проверьте работоспособность.

The SMTP server requires a secure connection or the client was not authenticated. The server response was: From/Sender name is not valid - данная ошибка появляется, когда удалили пользователя из системы.
Решение — из неотправленной почты нужно удалить сообщения, которые были привязаны к удаленному пользователю.

  1. SQL:
    1. Создать специального пользователя, от имени которого система будет подключаться к базе данных.
      Никаких прав, кроме db_owner на базу не нужно.
    2. Заблокировать все порты, кроме SQL.
  2. IIS:
    1. Создать пользователя в Active Directory, от имени которого будет запускаться пул приложений.
    2. Разрешить пользователю полный доступ к папке с документами, кэшем и логами.

IIS: добавить mime type .woff (см. инструкцию по установке)

Процесс переноса системы ничем не отличается от новой установки системы на новом сервере (ссылка на документацию), за исключением того, что Вы используете свои данные (бэкап Базы Данных, web-контент, документы), а не из дистрибутива. Для переноса нужно выполнить следующие шаги:

  1. Заархивировать папку с дистрибутивом (по умолчанию C:\SL_Files) и перенести на новый сервер.
  2. Если документы хранились в другом каталоге (не C:\SL_Files), то необходимо также перенести папку с ними на новый сервер.
  3. Заархивировать web-контент системы (папка С:\inetpub\wwwroot\Streamline) и перенести в папку С:\inetpub\wwwroot\Streamline на новом сервере.
  4. Сделать бэкап Базы Данных системы (БД), заархивировать для переноса и скопировать архив на новый сервер баз данных и разархивировать его там.
  5. Выполнить Установку и настройку системы на новом сервере (или серверах).
  6. После установки и настройки системы, передать на портал технической поддержки файл ключа _sl.dat для получения файла лицензии.
  7. Установить службу таймера (a2schr.exe).

Не скачивается документ / отсутствуют иконки / фотографии и т.д

  1. Проверить, что путь до документов указан корректно. Файл client.config должен быть в корневой папке. По умолчанию в папке: c:\inetpub\wwwroot\streamline
  2. Проверить, что у пользователя, от имени которого запущен пул, есть полные права на папку, указанную как место хранения документов в файле client.config.

Хотя файл есть, и необходимые права – тоже.

Проверить, что файл не заблокирован.

Довольно часто Windows автоматически блокирует файл, если он был скачан извне. Выполняться такой файл не будет ⇒ ошибка.

Зайдите в свойства файла → «Разблокировать».

Ошибка установки соединения с сервером, если используется самоподписный SSL сертификат

Добавить сертификат на ПК пользователя в список доверенных корневых центров сертификации (Win+R → mmc → «Файл» → «Добавить или удалить оснастку» → добавьте здесь сертификат)

Проверяйте корректную установку сертификата через Internet Explorer, т.к. интегратор использует движок IE.
Зайдите на сервер через IE. Если сообщение о недоверенном соединении не появилось, всё ок.

"Не удалось найти сервер"

Проверьте:

  1. настройки DNS сервера (если вы указываете доменное имя, а не ip-адрес);
  2. настройки самого SQL: чаще всего проблема встречается в редакциях SQL Express – там есть преднастроенный инстанс.
    При указании адреса SQL нужно указать не только доменное имя или IP, но и «named instance»:
    доменное_имя\инстанс

    Проверьте в SQL Server Configuration Manager, указан ли там инстанс;

  3. В SQL Server открыт порт 1433 (ссылка на пример инструкции).

Как проверить соединение: установить Management Studio на сервер IIS, скопировать данные для подключения из файла client.config и проверить подключение.

"У пользователя не хватает прав на запрос к БД"

В некоторых версиях Management Studio: если создавать пользователя, и одновременно давать ему права доступа на базу – права на самом деле не даются.

  1. Зайдите в пользователя снова;
  2. еще раз назначьте права (db_owner);
  3. сохраните.

Пользователю запрещен вход в SQL

Проверьте, что в настройках SQL разрешена смешанная авторизация (SQL + Windows)

(Свойства сервера → Безопасность → SQL + Windows)

При попытке разворачивания бэкапа - ошибки совместимости баз данных

SQL базы обратно не совместимы через бэкап.

Нельзя развернуть копию базы, сделанной на 2012 SQL, на 2008. Но это можно сделать средствами копирования базы из одного инстанса SQL в другой.

https://jakondo.ru/nastrojka-mssql-server-express-dlya-dostupa-iz-lokalnoj-seti/

Организуйте бэкапы согласно вашим корпоративным регламентам.

Что нужно бэкапить:

  1. Документы – хранятся в папке, указанной в файле client.config.
  2. База данных – SQL ⇒ настройте создание резервных копий штатными средствами SQL.

IIS

Запустите Reverse proxy с балансировкой по отказу.

Важно!

Система не поддерживает веб фермы. ⇒ Переключение с резервного сервера на основной должно быть только ручным, если у reverse proxy сработает ложный переход.
Если переключение на исходный сервер будет автоматическим, то без перезапуска ISS данные будут не действительные, система будет работать нестабильно и часть данных может быть утеряна.

SQL

Документы

Воспользуйтесь любым удобным способом обеспечения высокой доступности файлов.
Например, настройте бэкапы или используйте NFS.

  1. Открыть монитор ресурсов, посмотреть на вкладке Обзор → Диск → Время ответа (мс).
    Если время ответа больше 50-100 мс, то необходимо ускорять файловую подсистему.
  2. Посмотреть в диспетчере задач количество свободной оперативной памяти, при необходимости добавить.

См. также подробно о методах и инструментах повышения производительности системы.

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ессия пользователя прервется по истечению таймаута.

Увеличение таймаута сессии пользователя и таймаута кэша страницы может привести:

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

Отдельное увеличение таймаута сессии пользователя может привести к потере данных введенных пользователем на странице системы после, например после выхода компьютера пользователя из «Спящего режима», т.к. сработал таймаута кэша страницы и страница будет перезагружена при первом действии пользователя, которое отправит синхронный запрос на сервер.