Я играю с идеей использования RavenDB в качестве хранилища данных для приложения, которое, скорее всего, будет иметь пользовательский интерфейс HTML, пользовательский интерфейс WebService и серверные утилиты, которые будут обращаться к данным. Одной из причин использования RavenDB является горизонтальное масштабирование, которое он предлагает посредством репликации и очертания. Однако кажется, что существует несколько соображений, связанных с запуском Raven в качестве службы Windows или ее запуском через IIS.
- Безопасность. Является ли служба Raven более безопасной или будет использовать IIS, позволяя мне больше гибкости для ограничения по IP-адресу,.NET Membership и т.д.
- Кэширование. Кажется, что IIS - лучший выбор для этой функции.
- Архитектура. Поскольку мне не хотелось бы, чтобы какая-либо третья сторона обращалась к хранилищу данных, действительно ли имело бы смысл разоблачить Raven через IIS. Кроме того, существует бизнес-уровень между Raven и различными пользовательскими интерфейсами и утилитами, поэтому включение IIS кажется излишним и может привести к ненужной сложности.
- Производительность. Конвейер IIS, вероятно, имеет больше накладных расходов по каждому запросу, чем служба Windows
- Масштабирование. Использование IIS, вероятно, более сложно масштабировать на нескольких серверах, а не просто устанавливать службу Raven с небольшим пакетным файлом
EDITED
Я могу понять, используя конфигурацию Raven Embedded, если все, что у вас есть, - это один веб-клиент, но когда у вас несколько разных клиентов, API Raven должен быть открыт независимо, чтобы один клиент не блокировал файлы данных.