WCF - вопрос для начинающих по адресу (ABC) - PullRequest
0 голосов
/ 23 апреля 2010

Я новичок в WCF.Ниже приводится вопрос о WCF.

Предположим, у меня есть служба, определенная следующим образом.

Хост имеет два адреса.Я обычно нажимаю на базовый адрес http: // .... для генерации прокси.

  1. Когда сгенерирован прокси, будет ли он иметь адрес только http?
  2. Как можноЯ генерирую прокси с net.tcp.
  3. Есть ли какая-либо статья, объясняющая использование net.tcp с локальным хостом и ASP.NET?

Вот мой конфиг:

<service name="XXX.RRR.Common.ServiceLayer.MySL" behaviorConfiguration="returnFaults">
  <endpoint
      behaviorConfiguration="LargeEndpointBehavior"
      binding="netTcpBinding" bindingConfiguration="MessagingBinding" 
      contract="XXX.RRR.Common.ServiceLayer.IMySL" />
  <host>
    <baseAddresses>
       <add baseAddress="net.tcp://localhost:86/XXX/RRR/ManagerService" />
       <add baseAddress="http://localhost:76/XXX/RRR/ManagerService" /> 
    </baseAddresses>
  </host>
</service>

Спасибо, Лихо

1 Ответ

0 голосов
/ 24 апреля 2010

В чем именно ваша проблема здесь ??Из вашей конфигурации я вижу, что у вас не определен какой-либо адрес в конечной точке службы - вам нужно указать его!

<service name="XXX.RRR.Common.ServiceLayer.MySL" behaviorConfiguration="returnFaults">
  <endpoint
      address=""
      behaviorConfiguration="LargeEndpointBehavior"
      binding="netTcpBinding" bindingConfiguration="MessagingBinding" 
      contract="XXX.RRR.Common.ServiceLayer.IMySL" />

Когда вы создаете клиентский прокси-сервер для этой службы, используя адрес http, тогда даКонфигурация на стороне клиента будет иметь конечную точку http в качестве своего адреса - что-то вроде:

<client>
  <endpoint name="Default"
            address="http://localhost:76/XXX/RRR/ManagerService"
            binding="basicHttpBinding" 
            contract="XXX.RRR.Common.ServiceLayer.IMySL" />
</client>

Вы можете просто вручную добавить вторую конечную точку в конфигурацию - или использовать Wcf Configuration Tool в Visual Studio, чтобы сделать это!- вот так:

<client>
  <endpoint name="Default"
            address="http://localhost:76/XXX/RRR/ManagerService"
            binding="basicHttpBinding" 
            contract="XXX.RRR.Common.ServiceLayer.IMySL" />
  <endpoint name="TCP"
            address="net.tcp://localhost:86/XXX/RRR/ManagerService"
            binding="netTcpBinding" 
            contract="XXX.RRR.Common.ServiceLayer.IMySL" />
</client>

Однако при текущей конфигурации на стороне службы вы предоставляете только одну конечную точку netTcp на сервере - так что вы даже не сможете подключиться к серверуиспользуя HTTP для создания клиентского прокси .....

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