|
In the simplest configurations where you accept DevForce defaults, you don't need to provide a ClientConfig, and in your web.config all you need is the <notificationService enabled="true" /> setting, no serviceModel settings are required. You also need to ensure several additional assemblies are deployed. For the Silverlight application you need to reference the client version of System.ServiceModel.PollingDuplex.dll (it's in the "%Program Files(x86)%\Microsoft SDKs\Silverlight\v4.0\Libraries\Client" folder), and also IdeaBlade.EntityModel.Push.SL. In the web application you must reference the server version of System.ServiceModel.PollingDuplex.dll ( (in the "%Program Files(x86)%\Microsoft SDKs\Silverlight\v4.0\Libraries\Server" folder).
For more advanced configurations where the config files are used you can find complete sample files in the Deployment folder of the DevForce Resource Center samples: http://drc.ideablade.com/zip/DRC_SampleCode.zip - http://drc.ideablade.com/zip/DRC_SampleCode.zip . Here are the highlights:
In the ServiceReferences.Clientconfig the endpoint and binding look like this (with your URL):
<endpoint name="sl-NotificationService" address=" http://localhost:9009/EntityServer.svc/sl-NotificationService - http://localhost:9009/EntityServer.svc/sl-NotificationService " binding="customBinding" bindingConfiguration="pollingDuplex" contract="IdeaBlade.EntityModel.INotificationServiceAsync" />
<binding name="pollingDuplex"> <pollingDuplex duplexMode="MultipleMessagesPerPoll" inactivityTimeout="01:00:00"/> <binaryMessageEncoding /> <httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
transferMode="StreamedResponse"/> </binding>
In the web.config -
The service endpoint (under EntityServer):
<endpoint address="sl-NotificationService" binding="pollingDuplexHttpBinding" bindingConfiguration="duplexBinding" contract="IdeaBlade.EntityModel.INotificationService" />
The binding:
<pollingDuplexHttpBinding> <binding name="duplexBinding" duplexMode="MultipleMessagesPerPoll" maxOutputDelay="00:00:03" /> </pollingDuplexHttpBinding>
A binding extension is needed too:
<bindingExtensions> <add name="pollingDuplexHttpBinding" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement, System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </bindingExtensions>
|