2011-02-07 1 views
1

Клиент требует от нас установить нашу веб-систему на основе asp.net на своем сервере интрасети. Как только начальные настройки будут выполнены, сервер будет полностью недоступен для нас (из-за соображений безопасности, как вы могли догадаться). С другой стороны, мы по-прежнему несут ответственность за поддержание и постоянное развитие.Система самообновления ASP.NET

Так что я за какой-то системой автоматического обновления. Это считается службой Windows, работающей бок о бок с сайтом и периодически опроса центрального сервера для обновлений. Предполагая, что центральный сервер находится под контролем разработчиков, такой подход разрешит проблему.

Вопрос в том, существуют ли такие системы, коммерческие или свободные/с открытым исходным кодом. Кто-нибудь слышал о них? Мы немного ограничены во времени и предпочли бы разместить готовое решение, а не писать его с нуля.

+0

wxBuild/wxUpdate является популярным, но я не знаю, поддерживает ли он службу обновлений. – CodesInChaos

+0

Я считаю, что выигрыш в области безопасности немного сомнительный. Поскольку вы все еще можете развернуть произвольные двоичные файлы на свой сервер, которые затем выполняются. – CodesInChaos

+0

@CodeInChaos: Я работаю в банке, где для поставщиков нет ограничений доступа. Очевидно, клиент OP доверяет им не предоставлять вредоносное ПО. Если клиент подвержен риску, у них могут быть законные причины для ограничения доступа к их инфраструктуре. –

ответ

1

У Phil Haack есть библиотека, которую он собирает, чтобы включить это, хотя я согласен с ответом Дейва, что вы не должны нести ответственность за это, если не можете контролировать его.

Для получения более подробной информации см. here.

+0

Спасибо за ссылку. Я вообще не знаком с nuget, он поддерживает обновления схемы базы данных? Способна ли она сохранять файлы, специфичные для экземпляра? Различные экземпляры сайта будут иметь свои собственные наборы файлов, связанных с look and layout (изображениями и css-файлами). Необходимо сохранять их независимо от того, что содержит обновление. – Mooh

+0

Фил никогда не заканчивал свою библиотеку из того, что я могу сказать. Выглядел многообещающе. –

+0

Nuget - это система для вытягивания в ваш проект внешних библиотек, таких как Ninject или ELMAH. Он интегрируется с Visual Studio. Он освобожден, но он не будет решать проблему OP. –

3

Если у вас не будет доступа к этой системе, я не думаю, что услуга автоматического обновления будет хорошей идеей. Ваш клиент фактически берет на себя частичную ответственность за поддержку вашего приложения, блокируя вас. Это общепринято, но должно быть взаимно понято.

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