Возможно, вы также захотите прочитать файл ClientAccessPolicy.xml. Вот хорошая ссылка здесь, на SO. В двух словах, ваша служба должна позволять вызываться, предоставляя клиенту Silverlight доступ к своему домену через файл ClientAccessPolicy.xml. Это часто делается путем создания службы (которая может быть реализована в том же проекте, в котором размещается ваша служба), которая обеспечивает доступность файла ClientAccessPolicy.xml в правильном месте.
Если ваша служба размещена самостоятельно, вы можете добавить код, подобный этому, при запуске службы (Основной):
// This service is used to retrieve the client access policy to allow for cross-domain service calls.
ServiceHost ClientAccessPolicyService = null;
ClientAccessPolicyService = new ServiceHost(typeof(ClientAccessPolicyService));
ClientAccessPolicyService.Open();
Строки, подобные этой (из нашего проекта, который в настоящее время находится в разработке, я уверен, что эти параметры будут улучшены к моменту развертывания), добавляются в файл app.config вашей службы:
<service name="ClientAccessPolicyService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/"/>
</baseAddresses>
</host>
<endpoint address=""
binding="webHttpBinding"
contract="IClientAccessPolicy"
behaviorConfiguration="HttpEnableBehavior">
</endpoint>
</service>
<endpointBehaviors>
<behavior name="HttpEnableBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
Где ClientAccessPolicyService - это ваша служба, предоставляющая файл ClientAccessPolicy.xml, а IClientAccessPolicy - это OperationContract.
Надеемся, что между этой информацией и информацией по ссылке выше (и ее встроенными ссылками) вы сможете получить доступ к своему сервису из Silverlight. Может быть, я больше и не учусь, но я на самом деле только начинаю с WCF и Silverlight, поэтому мне повезло, что что-то работает!
Удачи!