Я работаю над написанием приложения на уровне предприятия, использующего службы WCF и NetTCP. Я выбрал NetTCP изначально из любопытства, но позже решил, что это лучший вариант для меня, так как я могу иметь службы, которые вызывают, которые берут 5 часов, чтобы возвращать результаты из-за количества хрустающих данных.Производительность хостинга WCF
То, как я в настоящее время создаю свои службы, - это многоэтапный процесс. У меня есть часть конфигурации (с использованием System.Configuration), которая указывает некоторые вещи по умолчанию (номер порта, имя сервера для подключения клиентов, как включить HTTP, так и NetTCP и т. Д.), И у него есть коллекция «служб» под Это. Например, вот что основная один выглядит следующим образом:
<serverConfiguration tcpListenerPortNumber="60000" httpGetEnabled="true" httpListenerPortNumber="6000" serverName="localhost" retryEnabled="true" retryInterval="5" maxRetryAttempts="3">
<services>
<add virtualDirectory="Service1" applicationName="Service1" assembly="SampleService" type="SampleService.Service1" />
</services>
</serverConfiguration>
В основном то, что происходит здесь моя служба Windows, пинает и смотрит на все в < услуги/> сбора и нерестится покинуть поток на службу, чтобы ускорить время запуска и каждый поток содержит AppDomain, где служба действительно живет, поэтому, если у службы есть какая-то ошибка, она не выводит систему вниз.
«Проблема», с которой я столкнулся, заключается в том, что в этом приложении размещено около 20 сервисов, и для всех служб, которые будут работать и работают, требуется 15-20 секунд. Я делал части Threading и AppDomain, чтобы довести это до такого значения (использовалось, чтобы занять минуту, поскольку каждая служба была открыта последовательно), но мне все же кажется, что это может пойти намного быстрее.
У кого-нибудь есть предложения? Google Bing имеет множество примеров для размещения одной службы, но я не нахожу много для приложений реального мира (к сожалению, «Hello World» просто не привлекает конечных пользователей). Если вы в настоящее время размещаете несколько сервисов через службу Windows и NetTCP, как вы это делаете?
Неужели это _need_, чтобы быть быстрее, чем это? Если он запускается только один раз в день, это составляет 20 секунд в день. Это недолго. –
Это в основном во время отладки, что она медленнее, поэтому основная область, с которой я пытаюсь выжать производительность. Сами услуги будут работать бесконечно (минус перезагрузки и, конечно же, такие). – RubyHaus