Технология .NET 4.0 обеспечивает модульную удерживающую службу по летам по летам в полете (Hotswap)?
Вопрос
Итак, сейчас мечтаю много лет, но надежды источники вечника. Существует ли рамка / услуга (WCF / WAS / MVC / ETC), которая позволяет добавлять / обновлять услуги с минимальным воздействием на текущие запросы или услуги «брата».
Мечта выглядит что-то подобное:
IIS7.
Host Plugbable LOD SERVICE HOST
Общие ресурсы (репозитории, QA)
Сервис A - упал в папку в производстве, обеспечивает новые методы отдыха
Сервис B - Обновлен «в полете», чтобы исправить ошибку, минимальное прерывание запросов
Я думаю, что ответ может вовлечь был или, возможно, AppFabric (мечта не осторожна), но поскольку мне никогда не удалось найти простой способ сделать его работать, я приветствую ваш вклад о том, как наилучшим образом достичь того, что я думаю, что наши товарищи PHP просто делать".
Решение
MEF + Самоустановленный WCF с webhttpbinding. Или МЭФ с httplistener. Новый стек WCF HTTP в http://wcf.codeplex.com. сделает это намного проще в будущем
Другие советы
Это не очень подходящий вопрос - это вопрос HTTP-сервера.
В прошлом, что я сделал, - это развернуть новую версию приложения в новое местоположение на сервере, возможно, используя URL, только видимый внутри. Затем я просто переключил свойства IIS, чтобы указать на новый URL.
Это странный вопрос. Сначала мы находимся в .NET World, где собраны сборки - это имеет большое влияние на другие вещи.
Таким образом, да, вы можете делать то, что вы хотите, если вы начнете программировать, как PHP-программисты. Откройте свой файл .svc и напишите весь ваш сервис напрямую к этому файлу. Это также известно как встроенное кодирование. Вы сможете использовать типы из собраний, развернутых в папку GAC и BIN вашего сайта. Просто копирование файла .svc в каталог веб-приложения сделает вашу услугу. Модификация также будет легкой. Вы должны использовать .NET 4.0, и вам не понадобится никакой изменения конфигурации при «развертывании» новой службы.
Редактировать:
Основываясь на комментариях, я добавляю некоторые дальше объяснения.
IIS и все, что зависит от IIS (было, AppFabric), всегда перерабатываю домен, когда добавляется новая сборка. Я думаю, что причина находится прямо в .NET Core - Appdomain. Загрузка и разгрузочные сборки динамически требуются новый домен.