Несколько экземпляров приложения ASP.net из одной конфигурации веб-сайта в IIS - PullRequest
4 голосов
/ 13 апреля 2011

Как следует из названия, я хотел бы создать в IIS один веб-сайт, который создает несколько экземпляров приложения ASP.net на основе запрошенного хоста.

Так что все экземпляры работают с одной и той же кодовой базой, но каждый экземпляр имеет свой собственный объект Application, коллекцию сеанса и т. Д.

Например:

host1.domain.tld/default.aspx -> this.Application["foo"] = "host1"
host2.domain.tld/default.aspx -> this.Application["foo"] = "host2"
host3.domain.tld/default.aspx -> this.Application["foo"] = "host3"

Я знаю, что яМожно настроить IIS для прослушивания определенного IP-адреса и настроить DNS для хоста (1 | 2 | 3) .domain.tld, чтобы он указывал на этот IP-адрес.Затем используйте Global.asax для проверки запрошенного хоста, чтобы установить специфические настройки хоста.Но приложение все равно будет работать как один экземпляр на сервере.

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

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

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

К вашему сведению - используемая версия asp.net - 4.0, а IIS работает на Windows Server 2008.

Любые предложения будут полезны.

Большое спасибо

1 Ответ

2 голосов
/ 13 апреля 2011

Самый простой и надежный способ сделать это - настроить отдельные сайты IIS.Я знаю, что вы не хотите этого делать, потому что будет очень трудоемким и определенно будет трудным в управлении.

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

Итак:

  1. Получите данные о 1600 экземплярах в пригодном для использования формате, база данных Sql Server (Express или оплаченная!), Вероятно, была бы идеальной.
  2. Исследование API обеспечения IIS7 s
  3. Соберите инструмент, который позволяет вам автоматически создавать все 1600 экземпляров из имеющихся у вас данных о них с помощью API IIS7.
  4. Поддерживать инструмент и расширять его, готовый к использованию.неизбежные изменения, которые потребуются, когда вам нужно добавить или удалить экземпляры.

Не забывайте, что совместное использование собственного инструмента для такой задачи дает вам большую гибкость, хотя можетбыть инструментами для этой цели, которые заслуживают изучения.Для этого (то есть непрограммного решения), я бы предложил спросить на http://www.serverfault.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...