Поэтому я буду предоставлять несколько функций через собственный (в WindowsService) WebServiceHost (не знаю, как обрабатывать HTTP GET/POST с помощью ServiceHost), одна из которых может вызываться большую часть времени. Эта функция также будет полагаться на соединение в домене приложения (размещенном службой WindowsService, чтобы оно могло оставаться активным при нескольких запросах).
У меня есть следующие проблемы, и я был бы очень благодарен за любой вклад/мысли/комментарии:
- Параллельный доступ — как WebServiceHost обрабатывает множество одновременных запросов. Ставятся ли они в очередь и обрабатываются последовательно, или новые экземпляры контрактов создаются автоматически?
- Связь WebServiceHost -> WindowsService. Мне нужна какая-то форма связи между WebServiceHost и хостингом WindowsService для таких вещей, как запрос нового сеанса, если он не существует. Возможно, реализация класса, который расширяет WebServiceHost событиями, на которые подписывается WindowsService... (если нет другого способа, которым я могу запустить событие в WindowsService при выполнении запроса...)
- Несколько WebServiceHosts или Contracts. Даст ли какой-либо реальный прирост производительности запуск нескольких экземпляров WebServiceHost в разных потоках (возможно, по одному на конечную точку?)? Лучшее понимание первого пункта, вероятно, поможет здесь.
- WSDL. Я не знаю, почему (вероятно, мне просто нужно больше читать), но я не уверен, как заставить базовую конечную точку WebServiceHost ответить документом WDSL с описанием доступного контракта. Не требуется, так как все операции будут выполняться через GET-запросы, которые вряд ли изменятся, но было бы неплохо иметь...
На данный момент это все ;) Я много читал о WCF и хотел бы, чтобы я давно этим занимался, но определенно все еще учусь.