Сделайте одну службу WCF размещаемой в WAS, IIS, консольном приложении и службе Windows - PullRequest
0 голосов
/ 12 марта 2019

Я хочу создать службу WCF с единой базой кода, которую можно будет повторно использовать в различных сценариях хостинга. Я бы всегда хотел, чтобы версия службы оставалась идентичной, чтобы независимо от того, как она размещалась, служба была службой.

Например, я могу успешно создать одну сборку для поддержки сценариев Self-Hosted Console App и Windows Service (EXE). И, насколько я могу судить, может показаться, что одна сборка может поддерживать хостинг WAS и IIS (DLL).

Одна вещь, которая может сработать, хотя и не самая элегантная, - это иметь два проекта (EXE и DLL) в одном решении. Затем выберите один из проектов в качестве исходного источника, а в другом используйте Добавить -> Существующий элемент -> Добавить как ссылку, чтобы включить исходные файлы интерфейса и реализации, а затем отдельно управлять связанными файлами Web.config и App.config для конечные точки и т. д.

Хотя это и не является долгосрочной проблемой, я вижу одну вещь: изменение имен файлов интерфейса или класса в исходном исходном проекте потребует ручного изменения имен во втором.

Ссылки:

https://docs.microsoft.com/en-us/dotnet/framework/wcf/how-to-host-a-wcf-service-in-a-managed-application

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-host-a-wcf-service-in-a-managed-windows-service

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-host-a-wcf-service-in-iis

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-host-a-wcf-service-in-was

Существует ли более элегантный способ достижения единого размера для всей (почти) кодовой базы? Любые другие подводные камни, которые я пропускаю?

...