Получить URL для службы отдыха WCF - PullRequest
2 голосов
/ 28 февраля 2011

Можно ли найти URL для сервиса и метода?

Пример:

class MainServiceModel {
   public string detailsUrl;
}

class MainService {
  MainServiceModel get() {
    return new MainServiceModel {
      detailsUrl = new Uri("how do I get DetailsService.ShowDetails url?");
    }
  }
}

class DetailService {
   string ShowDetails(string id);
}

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Попробуйте проверить OperationContext:

OperationContext oc = OperationContext.Current;
string wasCalledOn = oc.EndpointDispatcher.EndpointAddress.Uri.ToString();

Контекст операции также содержит множество другой информации о текущей операции и параметрах для нее.

Обновление: Если вы хотите вызвать Сервис B из вашего метода в Сервисе A, вы должны создать прокси на стороне клиента в Сервисе А. Таким образом, вы получите некоторые записи конфигурации, а затем сможетелегко вызвать метод в Сервисе B из вашего Сервиса.

хорошо, так что это не так ...

0 голосов
/ 28 февраля 2011

Моя идея очень высокого уровня заключается в создании собственного ServicHost (и ServiceHostFactory, если используется IIS).Когда создается ServiceHost, у вас есть доступ к описанию службы и конечным точкам.Вы можете получить необходимую информацию и сохранить ее где-нибудь для последующего использования.Вам нужно будет использовать отражение в ServiceType для получения относительных URL операций.

Кстати.в WCF4 каждый сервис уже показывает это, если вы включаете страницу справки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...