Возможно, я просто не понимаю, но у меня есть служба, которая развернута на машине IIS 6. У этой машины есть адрес локальной сети и общедоступный интернет-адрес.Конечные точки WCF заставляют меня сумасшедшим
Насколько я должен быть в состоянии опубликовать эту услугу с помощью обоих доступных?
- Адрес 1: http://serverName/ServiceName/Service.svc
- Адрес 2: http://www.companyName.com/ServiceName/Service.svc
Сначала я подумал: Ничего особенное, 2 конечных точек. Так что у меня
<endpoint
address="Address 1"
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="RemoteEndpoint" />
<endpoint
address="Address 2"
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="LocalEndpoint" />
клиентский код затем выглядит следующим образом:
public void createServiceProxy()
{
if (Util.IsOperatingLocally())
this.proxy = new ProxyClient("LocalEndpoint");
else
this.proxy = new ProxyClient("RemoteEndpoint");
}
Нет кости. Невозможно добавить ссылку на службу.
Нет привязки протокола к указанному адресу 'Адрес 1'. Связи протоколов настраиваются на уровне Сайта в конфигурации IIS или WAS.
Тогда я подумал: может быть, тег хоста и его тег dns помогут. Нет, это для аутентификации.
Тогда я подумал: я буду использовать net.tcp для локальной конечной точки. К сожалению ... IIS 6 не поддерживает net.tcp.
Тогда я подумал: я знаю, что конструктор ProxyClient берет строку remoteAddress в качестве своего второго параметра. Теперь это будет выглядеть так:
<endpoint
address=""
binding="wsHttpBinding"
bindingConfiguration="DefaultBindingConfiguration"
name="MyEndpointName" />
public void createServiceProxy()
{
if (Util.IsOperatingLocally())
this.proxy = new ProxyClient("MyEndpointName", "Address 1");
else
this.proxy = new ProxyClient("MyEndpointName", "Address 2");
}
Видимо, нет. При попытке создать экземпляр ProxyClient ...
Не удалось найти конечную точку элемента с именем «MyEndpointName» и контракт MyService.IService»в разделе конфигурации клиента ServiceModel.
Который приводит меня к app.config которого генерируется клиентский раздел выглядит следующим образом:
<client>
<endpoint address="http://localhost:3471/Service.svc" binding="customBinding"
bindingConfiguration="MyEndpointName" contract="MyService.IService"
name="MyEndpointName">
<identity>
<userPrincipalName value="DevMachine\UserNa,e" />
</identity>
</endpoint>
</client>
Который точно не смотреть прямо на меня.
Моя следующая мысль не является здоровой. Пожалуйста помоги.
Если вы правы, я назвать мой первый ребенок родился Otavio. –
Однажды я могу просто познакомить вас с маленьким Отавио. Благодарю. –
@SnOrfus - Рад за помощь и благодарю вас за честь :-) –