Несколько клиентских конечных точек для одной и той же службы WCF - PullRequest
1 голос
/ 20 октября 2010

У меня есть служба WCF, работающая в локальной сети IIS, которая также доступна из Интернета.

Клиент, который использует службу, представляет собой приложение, которое работает в локальной сети и удаленно через Интернет. На DNS-сервере нет переадресации чего-либо, перенаправляющего http://www.corporate.com/Service на http://serverName/Service, поэтому я полагаю, что мне понадобятся 2 конечные точки на клиенте.

Как настроить несколько конечных точек на клиенте (это так же просто, как скопировать существующую точку создания, созданную в app.config, но изменить адрес?) И как настроить клиент для использования конкретной конечной точки?

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Вы можете хранить адреса конечных точек либо в app.config, либо в строках ресурсов.Затем, используя любое условие, вы передаете нужный адрес конечной точки конструктору службы.

var endpoint = ApplicationSettings.IsRemote ? Resources.RemoteEndPoint: Resources.LocalEndPoint;
var service = new MyWCFService(new BasicHttpBinding(), new Endpoint(endpoint));
2 голосов
/ 20 октября 2010

В app.config (или web.config) для каждой копии приложения должна быть конечная точка для набора служб на основе той, которая ему нужна.Для установки в локальной сети используйте видимую в локальной сети конечную точку;для всех остальных используйте Интернет один.

Это может сэкономить вам поездку на маршрутизатор, но почему бы просто не использовать конечную точку Интернета везде?Если у ваших компьютеров в локальной сети есть шлюз для сети, они могут видеть внешне видимый адрес.

0 голосов
/ 20 октября 2010

Это так же просто, как изменить адрес и использовать конечную точку, сгенерированную в конфигурации приложения.Возможно, вам придется изменить режимы безопасности в зависимости от того, что поддерживается на одном из серверов, или на обоих запущены HTTPS или нет.У нас есть приложение, в котором мы создаем целевую конечную точку на основе относительного пути к текущему URL-адресу в приложении Silverlight.Мы также динамически меняем режим безопасности на основе присутствия HTTPS, и он прекрасно работает.

...