Я предполагаю, что у вас есть приложение ASP.NET, которое также содержит несколько служб WCF, к которым можно получить доступ с клиента. В этом нет ничего плохого, и он отлично работает.
Три вещи, которые вы должны рассмотреть, являются:
- разделяет интерфейсы для служб WCF на их собственную сборку
- сохранить объекты данных, которые вы используете, в еще одной сборке
- разделяет реализацию интерфейсов на их собственную сборку
Это может показаться излишним, и это не всегда необходимо делать таким образом, но я бы сделал, по крайней мере, шаги 1 и 2. Сохранение объектов данных и контрактов (интерфейсов) в их отдельных сборках важно, поскольку это помогает при совместном использовании (ссылках) объектов данных из разных проектов (т. е. если у вас есть клиент Silverlight или Windows Forms / WPF, который может использовать эти сборки).
Отделение реализации (шаг 3) - это хорошо, но не самое главное. Если вы выполните этот шаг, вы все равно сможете опубликовать конечные точки WCF через приложение ASP.NET.