Несколько служб Windows, использующих один и тот же wcf с несколькими конечными точками?
Нужна помощь с лучшим подходом, который кто-то мог использовать в прошлом для решения следующей проблемы...
Размещение WCF через службу Windows, вызывающую сторонний COM. К сожалению, COM является STAThead, что означает, что он когда-либо использует только одно ядро, когда работает в одной области процесса.
Чтобы обойти эту проблему, я хочу продублировать службу Windows (что я легко сделал, используя разные имена служб во время установки), создав другую область процесса, чтобы COM-взаимодействие использовало другое ядро.
Проблема: Как разместить каждую службу по разному адресу, чтобы клиенты могли вызывать любую службу, которая хочет использовать методы WCF?
Если я использую разные конечные точки и указываю каждой службе Windows на другую, я получаю сообщение об ошибке, в котором говорится, что для каждого базового адреса разрешен только один хост.
Могу ли я добавить несколько базовых адресов (возможно, разные порты) для одного и того же протокола и при этом связать их с разными службами хоста?
Примеры были бы отличными:).
1 ответ
Мне кажется, что вы действительно хотите, чтобы несколько экземпляров этого COM-объекта использовались службой WCF. Вы можете создать новые потоки (каждый STA), которые создают и используют свои собственные COM-объекты, чтобы вы могли использовать более одного из этих COM-объектов одновременно. Вам, конечно, придется сообщать о любых результатах обратно в ветку WCF.
Если вы хотите разместить более одного экземпляра службы WCF, это зависит от того, как вы размещаете. В ii6 вы можете просто создать другой файл.svc. Это запустит службу в том же процессе, что и все остальные в этом пуле приложений. Вы можете заставить службу работать в другом процессе, назначив ему другой пул приложений. Я не уверен, что вы можете сделать это на основе.svc. Если вы используете IIS7, вы можете либо выполнить функцию.svc, либо использовать поддержку службы активации процессов Windows (WAS) в IIS7, и в этом случае вы в основном создаете другой элемент в конфигурации. Я считаю, что вы можете использовать WAS в Windows Server 2008 R2 без реального использования IIS...