Я пытаюсь подключиться к существующей службе Windows, которая предоставляет несколько конечных точек WCF.Я обеспокоен тем, о чем будет говорить приложение Silverlight 4.Вот файл конфигурации службы (по крайней мере, те разделы, которые нас интересуют):
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="EnableMetadataBehavior">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="EnableMetadataBehavior" name="Cad.Server.ConsoleCustomerServicePortal">
<endpoint address="ConsoleCustomerServicePortal" binding="wsDualHttpBinding"
name="CustomerServiceEndpoint" contract="Cad.Net.Wcf.Contracts.CustomerService.ICustomerService" />
<endpoint address="" behaviorConfiguration="webHttpBehavior"
binding="webHttpBinding" name="CustomerServiceSilverlightEndpoint"
contract="Cad.Net.Wcf.Contracts.Silverlight.IClientAccessPolicy" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:31313/" />
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
Служба размещается самостоятельно, и следующий запуск узла службы:
Public Sub StartServiceHost()
'Publish the Wcf Service endpoint.
Try
shRccUserInterface = New ServiceHost(Me._CsService)
AddHandler shRccUserInterface.Faulted, AddressOf OnChannelFaulted
AddHandler shRccUserInterface.Closed, AddressOf OnChannelClosed
AddHandler shRccUserInterface.Opened, AddressOf OnChannelOpened
AddHandler shRccUserInterface.Opening, AddressOf OnChannelOpening
AddHandler shRccUserInterface.UnknownMessageReceived, AddressOf OnUnknownMessageReceived
shRccUserInterface.Open()
Me.blnServiceHostOpen = True
RaiseEvent ServiceHostOpenEvent(Me)
Catch exWcf As Exception
log.Write_Error("CsGuiComm", "StartServiceHost()", exWcf)
RaiseEvent SendUtaEmailEvent("Wcf Problem", exWcf.ToString, System.Net.Mail.MailPriority.High)
End Try
End Sub
Я могу сгенерировать ссылку на службу в приложении Silverlight просто отлично, хотя из-за способа настройки службы мой файл ServiceReferences.ClientConfig выглядит следующим образом:
<configuration />
Я искал и нашел способ обойти этодолжен предоставить информацию о привязке и конечной точке для прокси (http://tomasz.janczuk.org/2009/07/pubsub-sample-using-http-polling-duplex.html). На основании этого примера я попытался написать:
Dim _address As New EndpointAddress ("http://localhost:31313/ConsoleCustomerServicePortal") Dim _binding As New WSDualHttpBinding()
Затемнить _Клиент как новыйлибо получите заполнение ServiceReferences.ClientConfig при создании ссылки на службу, получите ссылку на WSDualHttpBinding в приложении Silverlight, или я должен переключиться на другую привязку (PollingDuplexHttpBinding)?