使用Windows服务的WCF基础知识

时间:2010-11-08 17:48:59

标签: vb.net wcf

我正在研究与Silverlight相关的WCF。

有人可以告诉我,如果我认为我可以创建WCF服务,并使用我的Silverlight应用程序可以使用的Windows服务公开TCP端点吗?

我已经设法使用IIS公开了这个,但是如果我们可以绕过使用IIS会很好,因为我们的一些客户不喜欢它。

... UPDATE

确定我已经创建了一个WCF服务库(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项目中添加服务引用时,我得到了 “由于目标机器主动拒绝它,因此无法建立连接” 有什么我想念的吗?

3 个答案:

答案 0 :(得分:1)

您可以创建充当您自己的主机的Windows服务。以下是托管WCF服务的各种方法的link

答案 1 :(得分:1)

codeproject.com上的

This sample我用于自托管WCF服务。将它构建到Windows服务中非常简单。将Topshelf视为Windows服务框架。

答案 2 :(得分:0)

你应该可以这样做。您可以在IIS中使用任何绑定,您应该可以使用自托管。