Пока я опаздываю на вечеринку, нужно сказать одно.
Первый параметр устанавливает array1_OfStrings
в массив строк
Другой параметр указывает, что array1_OfStrings
является массивом строк и затем устанавливает его пустым.
Пока это может быть очень небольшая разница, вы заметите это при компиляции. Для первого варианта компилятор автоматически попытается выяснить, что является типом array1_OfStrings
. Второй вариант этого не сделает, вы дадите компилятору понять, что на самом деле это массив строк и сделано.
Почему это важно? Взгляните на следующую ссылку: https://thatthinginswift.com/debug-long-compile-times-swift/
Как вы можете видеть, если вы этого не сделаете объявить тип переменной, которая может повлиять на производительность сборки. LOT.
Вам нужны 2 сервера и подсистема балансировки нагрузки. Вот находится на шагах:
, Вещь, даже в этом случае у Вас все еще будут перезапуски приложения и потеря сессий при использовании "липких сессий". Если у Вас есть сессии базы данных или сервер состояния, то все должно быть прекрасным.
Microsoft Web Deployment Tool поддержки это до некоторой степени:
Включает поддержку Windows Transactional File System (TxF). Когда поддержка TxF включена, операции файла атомарные; то есть, они или успешно выполняются или перестали работать полностью. Это гарантирует целостность данных и предотвращает данные или файлы от существующего в "промежуточном" или поврежденном состоянии. В MS Развертываются, TxF отключен по умолчанию.
кажется, что транзакция для всей синхронизации. Кроме того, TxF является функцией Windows Server 2008, таким образом, эта функция транзакции не будет работать с более ранними версиями.
я полагаю, что возможно изменить Ваш сценарий для папок использования с 0 временами простоя как версии и метабаза IIS:
, Этот метод предлагает следующие преимущества:
Я предложил бы сохранить старые файлы там и просто перезаписать их. Тем путем время простоя ограничено однофайловыми временами перезаписи и существует только когда-либо один файл, отсутствующий за один раз.
Не уверенный это помогает в "веб-приложении", хотя (я думаю, что Вы говорите, что это - то, что Вы используете), который является, почему мы всегда используем "веб-сайты". Также с "веб-сайтами" развертывание не перезапускает Ваш сайт и отбрасывает все сеансы пользователя.
Единственные нулевые методы времени простоя, о которых я могу думать, включают хостинг по крайней мере на 2 серверах.
Я бы немного уточнил ответ Джорджа, как показано ниже, для одного сервера:
Шаг 4 приведет к тому, что рабочий IIS процесс для повторного использования.
Это нулевое время простоя только в том случае, если вы не используете сеансы InProc; вместо этого используйте режим SQL, если можете (даже лучше, полностью избегать состояния сеанса).
Конечно, это немного сложнее, когда есть несколько серверов и / или изменений в базе данных ....
Я недавно прошел через это, и решение, которое я придумал, заключалось в том, чтобы настроить два сайта в IIS и переключаться между ними.
В моей конфигурации у меня был веб-каталог для каждый сайт A и B выглядит следующим образом: c: \ Intranet \ Live A \ Интерфейс c: \ Intranet \ Live B \ Interface
В IIS у меня есть два идентичных сайта (одинаковые порты, аутентификация и т. д.), каждый со своим собственным пулом приложений. Один из сайтов работает (A), а другой остановлен (B). у живого также есть заголовок живого хоста.
Когда дело доходит до развертывания в реальном времени, я просто публикую на сайте ОСТАНОВЛЕННЫЙ. Поскольку я могу получить доступ к сайту B, используя его порт, я могу предварительно подогреть сайт, чтобы первый пользователь не вызвал запуск приложения. Затем с помощью командного файла я копирую заголовок живого хоста в B, останавливаю A и запускаю B.