2010-01-21 2 views
1

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

Это мои конечные точки для конфигурационного файла 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() и конфигурацией.

ответ

0

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

И так как 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> 
+0

Просто примечание. Silverlight 3 поддерживает бинарное связывание в дополнение к BasicHttpBinding. Фактически, это новый стандарт при создании новой службы WCF с поддержкой Silverlight. –

+0

Мне просто нужно использовать 1 конечную точку для обоих? Или я должен использовать бинарное связывание для обоих? –

+0

Я сделал только один экземпляр для basichttpbinding, теперь я получаю эту ошибку: Контракт требует сеанса, но привязка «BasicHttpBinding» не поддерживает его или неправильно настроена для его поддержки. –

0

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

Смежные вопросы