2010-11-08 2 views
0

Я смотрю WCF специально в отношении Silverlight.Основы WCF с сервисом Windows

Может ли кто-нибудь сказать мне, правильно ли я считаю, что я могу создать службу WCF и выставить конечную точку TCP с помощью службы Windows, которую может использовать мое приложение Silverlight?

Мне удалось разоблачить это с помощью IIS, но было бы хорошо, если бы мы могли обойти использование IIS, поскольку некоторым из наших клиентов это не нравится.

UPDATE ...

ОК Я создал службу WCF Library (RemoteClientLib с IRemoteClients определения своих контрактов на обслуживание и RemoteClients реализующих этот интерфейс) и службу Windows для его размещения. Я добавил App.config к обоим проектам, выглядит следующим образом:

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <services> 
     <service name="RemoteClientLib.RemoteClients" behaviorConfiguration="remoteBehavior"> 
     <endpoint address="" binding="netTcpBinding" contract="RemoteClientLib.IRemoteClients" bindingConfiguration="remoteBinding"/> 
     <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> 
     <host> 
      <baseAddresses> 
      <add baseAddress="net.tcp://localhost:4520/RemoteClients"/> 
      </baseAddresses> 
     </host> 
     </service> 

    </services> 
    <bindings> 
     <netTcpBinding> 
     <binding name="remoteBinding"></binding> 
     </netTcpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="remoteBehavior"> 
      <serviceMetadata/> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 
    <system.web> 
    <compilation debug="true"/> 
    </system.web> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

Я создал инсталлятор проекта, чтобы установить службу и начал его, но когда я пытаюсь добавить ссылку на службу в моем SilverLight проекте я получаю «Соединение не может быть сделано, потому что целевая машина активно отказалась от этого» Есть ли что-то, что мне не хватает?

+0

Терминал TCP несовместим с iis – Andrey

ответ

1

This sample на codeproject.com Я использовал для самообслуживания служб WCF. Было бы довольно просто построить его в службе Windows. Рассмотрим также Topshelf как основу службы Windows.

+0

ОК Спасибо за ответы. –

+0

Как указать, какой/какой порт будет использоваться Сервисом для подключения к нему с моим клиентом. Использование IIS, размещающего порт, указывается в привязках сайта и не выполняется нигде в коде. –

+0

Порт выражен в вашей библиотеке службы WCF .Config – kenny

0

Вы должны быть в состоянии сделать это. Любые привязки, которые вы можете использовать в IIS, вы должны использовать с самостоятельным хостингом.

1

Вы можете создать службу Windows, которая будет действовать как ваш собственный хост. Вот link для различных методов, доступных для размещения службы WCF.

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