Интерфейс для рабочей роли прост ... вы реализуете метод Run (), который никогда не возвращается, и мы вызываем его.То, что вы делаете, может быть чем угодно ... вы можете раскрутить 100 потоков, делая разные вещи, вы можете использовать Process.Start () для запуска отдельных процессов, вы можете запустить веб-сервер и т. Д.
Iне знаю, есть ли недостатки размещения WCF в рабочей роли.В веб-роли вы могли бы использовать IIS в качестве хоста, что может помочь с масштабируемостью службы по сравнению с запуском вашего собственного хоста.
Один из распространенных шаблонов - это предоставление рабочей роли извлечения работы из очереди.Преимущество очереди в том, что она гарантирует, что каждое сообщение будет доставлено хотя бы один раз (чтобы вы не потеряли работу).Он также распределяет нагрузку, потому что каждый работник может извлечь сообщение из очереди, когда он будет готов к дальнейшей работе.Если вместо этого вы используете WCF или какой-либо другой синхронный обмен данными, вы должны сами решить, как распределять работу и как восстанавливаться после ошибок (без потери работы).Это, конечно, возможно (и на самом деле, вероятно, быстрее, чем возврат в очередь), но сложнее построить надежный, масштабируемый сервис таким образом.