WCF: исправить адрес конечной точки при использовании externalMetadataLocation - PullRequest
3 голосов
/ 27 октября 2010

WCF позволяет указать внешний файл WSDL, который должен публиковаться вместе со службой, а не сгенерированный WSFL WCF.В первом подходе к проектированию WSDL имеет смысл публиковать исходный WSDL, а не сгенерированный WSDL.

Это устанавливается с использованием externalMetadataLocation:

<serviceBehaviors>
  <behavior>
    <serviceMetadata httpGetEnabled="true" externalMetadataLocation="path_to_my_wsdl.wsdl"/>
    <serviceDebug includeExceptionDetailInFaults="false"/>
  </behavior>
</serviceBehaviors>

Проблема IЯ сталкиваюсь с тем, что когда я делаю это, он обслуживает WSDL, который имеет неправильный адрес конечной точки.Я хочу, чтобы адрес конечной точки во время выполнения заменялся реальным адресом конечной точки службы (который будет отличаться в зависимости от того, где он развернут).

Существует ли простой способ сделать это?

1 Ответ

3 голосов
/ 13 января 2011

Я ни в коем случае не эксперт WCF, но вы не можете сделать это, указав это на конечной точке в файле конфигурации (web.config), например:

<system.serviceModel>
    <services>
        <service>
            <endpoint 
                listenUri="https://yourdomainname.com/servicename.svc"
                address="https://yourdomainname.com/servicename.svc">

Примечание:listenUri "является физическим адресом, а конечная точка" address "является логическим адресом.То есть.«listenUri» - это то, где сервис находится на самом деле, а конечная точка - это то, что клиент будет запрашивать.

Если они одинаковые, вам не нужно слушать Uri, я верю.

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