2012-03-13 2 views
-1

У меня есть база данных SQL Server, которая обслуживает несколько веб-приложений ASP.NET. У каждого из них есть свои SiteID, чтобы отличить данные.Нужна служба для обработки нескольких подключений к одной базе данных

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

Все веб-приложения и база данных размещаются на одном сервере Windows 2008.

Я хочу знать, какой сервис лучше всего подходит для этой функции. веб-службы или службы Windows? На предыдущей работе у них, казалось, была служба Windows, которая работала на сервере, каковы преимущества этого в веб-сервисе?

+2

Так как это веб-приложения, веб-сервис имеет большой смысл в отношении службы Windows. Вы знаете, потому что у них обоих есть «сеть» в них. – jrummell

+0

Любые потребности в сарказме? Я спросил, потому что для этой цели я видел очень успешную настройку с помощью службы Windows на Windows Server 2008. – David

+0

Что вы пытаетесь достичь? Вам также не нужно, если вы просто перемещаете веб-приложение на другую машину. – Maciej

ответ

0

Windows Service против веб-службы яблоки против апельсинов ... Служба окна не подавайте данные по себе ...

Так вот несколько вариантов:

Доступ к данным в традиционной Код

Похоже, это то, что у вас есть. Пока это логически отдельный слой, это, вероятно, не так уж плохо.

Услуги

Использование услуг имеет много преимуществ, таких истинное разделение задач/реализации. Вы даже можете реализовать свою услугу на другом языке/платформе, чем ваше клиентское приложение. Недостатком может быть производительность. Вероятно, вам придется сериализовать/десериализовать данные, а цикл cpu будет выполняться так, как вы его нарезаете.

Интерфейс Driven подход

Это хорошо, потому что вы можете написать свой доступ к данным в приложении с интерфейсом. Этот интерфейс может быть реализован с помощью «традиционного» кода ADO/ORM. Или вы можете использовать веб-сервис. Это имеет явное преимущество в том, что отделить пользовательский интерфейс от данных и сделать автоматическое тестирование модулей намного проще.

1

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

Похоже, вы хотите использовать службу WCF, которая позволит вам запускать как веб-приложение под IIS -OR-, так и в качестве самостоятельной службы Windows. Существует немного кривой обучения, если вы никогда не делали WCF, но это стоит того, чтобы учиться.

WCF под IIS, вы получаете те же преимущества, что и при работе с любым веб-сайтом. Управление жизненным циклом приложения, техническое обслуживание с использованием модуля mms IIS, работающего под определенным идентификатором пула и т. Д.

В качестве службы Windows вы управляете с помощью Сервисов mms, и вам нужно вручную написать немного больше кода (просто немного), чтобы обрабатывать запуск и завершение службы, и, конечно же, вы не получаете управление жизненным циклом приложения, которое вы выполняете с IIS.

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

Смежные вопросы