Если вы хотите создать систему, у которой никогда не было простоев. Я бы предложил несколько альтернатив вашей идее.
В конце концов, я не думаю, что ваша идея будет успешной. Если я что-то не пропустил, в какой-то момент при добавлении новых функций в необработанный файл javascript вам все равно нужно обновить код C #, чтобы обрабатывать взаимодействие с этим конкретным разделом кода и из него. Возможно, вы могли бы смягчить этот сценарий с большим количеством XML. НО, как только вы начнете думать в этих терминах, у вас будет тонна ввода-вывода, маршалинг данных и кошмар обслуживания.
Короче говоря, я не думаю, что это приемлемый вариант.
Некоторые альтернативы:
Несколько серверов : если вы поддерживаете 2 или 3 одинаковых сервера, вы можете просто отключить один, перенаправить всех пользователей в резервную копию, пока вы обновляете основной сервер. После этого перенаправьте их обратно на основной сервер, а затем обновите резервную копию.
Live Patching : Опять же, я относительно мало знаю о таких методах, но существуют алгоритмы и подходы для исправления живых DLL без необходимости перезапуска. Проведите некоторое исследование на эту тему, потому что это, вероятно, самый жизнеспособный вариант (в большинстве случаев люди и компании не просто покупают больше оборудования без веских причин, чтобы покрыть расходы).