Вопрос о том, как создать WCF silverlight 3 endpoints - PullRequest
1 голос
/ 21 января 2010

Я хотел использовать службу WCF с приложением silverlight и приложением asp.net mvc, и у меня возникают трудности с настройкой службы для поддержки обоих запросов.

это мои конечные точки для файла конфигурации WCF.

  <service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService">
    <endpoint binding="wsHttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService">
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>

    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service> 

Я получаю следующую ошибку: Экземпляр привязки уже был связан для прослушивания URI «net.tcp: // localhost: 10377 / ProdutoService». Если две конечные точки хотят использовать один и тот же ListenUri, они также должны использовать один и тот же экземпляр объекта привязки. Две конфликтующие конечные точки были указаны в вызовах AddServiceEndpoint (), в файле конфигурации или в комбинации AddServiceEndpoint () и config.

Ответы [ 2 ]

0 голосов
/ 21 января 2010

В вашей конфигурации адреса двух конечных точек одинаковы. С помощью HTTP-привязок вы можете иметь несколько конечных точек для службы, но вам нужно указать для них разные адреса. Измените адрес конечной точки basicHttpBinding для решения этой проблемы.

0 голосов
/ 21 января 2010

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

И поскольку Silverlight поддерживает только BasicHttpBinding , вы как бы застряли с ним.

<service behaviorConfiguration="behaviorAction" name="Uniarchitecture.ProdutoService.ServiceImplementations.ProdutoService">
    <endpoint binding="**basic**HttpBinding" bindingConfiguration="bindingAction" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>
    <endpoint address="" binding="basicHttpBinding" contract="Uniarchitecture.ProdutoService.ServiceContracts.IProdutoService"/>
</service>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...