2016-12-13 4 views
0

В настоящее время я занимаю центральное место, чтобы выполнять некоторые общие задачи, которые должны использовать кучу проектов, и было бы очень приятно иметь это (в основном для удобства, я соглашусь):Несколько сервисов по одному и тому же адресу

enter image description here

Я просто не могу сделать это. Я пробовал реализовать multiple interfaces, но это не работает так, как я хочу. Это слишком много в одном месте. У меня есть псевдо-предмет прямо сейчас, когда у меня есть три службы, но на трех разных адресах (/ReportingService.svc, /QueueService.scv и /TicketService.svc), и, таким образом, вышеизложенное не происходит (в идеале только один /Services.svc).

Способ построения диалога, похоже, поддерживает этот способ предоставления услуг (а именно, он говорит «1 служба (ы), найденная в [...]»), но я просто не могу найти способ сделать это ,

Я полагаю, что this может быть полезным, но я не смог заставить его работать. Я просто получаю 404 при попытке открыть listenUri.

Есть ли у кого-нибудь хорошие идеи?

ответ

0

Вам необходимо создать свои методы в интерфейсе (и, очевидно, реализовать эти методы в вашем классе обслуживания).

[ServiceContract] 
public interface IService 
{ 
    [OperationContract] 
    string method1(int code); 

    [OperationContract] 
    int method2(String id); 
} 

Итак, теперь у вас есть только одна служба и несколько методов внутри нее.

Или, если вы хотите сохранить организованы ваши методы, вы могли бы включать услуги в вашем Web.config файл.

<services> 
    <service name="ServicioWeb.IService1"> 

    <endpoint binding="webHttpBinding" 
       contract="ServicioWeb.IService1" 
       behaviorConfiguration="WebBehavior" 
       />   
    </service> 
    <service name="ServicioWeb.IService2"> 

    <endpoint binding="webHttpBinding" 
       contract="ServicioWeb.IService2" 
       behaviorConfiguration="WebBehavior" 
       />   
    </service> 
</services> 

И ваш URL-адрес изменится. Что-то вроде этого: http://localhost:8080/Service1.svc/ ... http://localhost:8080/Service2.svc/ ...

+0

Да, но мне нужен этот уровень выше. Допустим, что каждая из услуг имеет по 5 методов/операций. Подход, который я мог бы использовать на основе вашего ответа, состоит в том, чтобы собрать их все в одном классе (togeather или в частичных). Это я уже работал, создавая три отдельных сервиса. Я хочу, чтобы эти трое были перечислены по одному и тому же URL, по моему прекрасному изображению: D – Heki

+0

вы могли добавить _services_ в свой файл Web.config. Обновлен мой ответ –

+1

Спасибо за внимание, но ваше редактирование описывает _exactly_, что у меня уже есть; разные URL-адреса для каждой службы. Я хочу, чтобы все они были включены в один и тот же URL-адрес, и разделили способ, описанный в вопросе. – Heki

Смежные вопросы