代码之家  ›  专栏  ›  技术社区  ›  Matt Wilko kingecg

使用Windows服务的WCF基础知识

  •  0
  • Matt Wilko kingecg  · 技术社区  · 15 年前

    有人能告诉我,我可以创建一个WCF服务,并使用我的Silverlight应用程序可以使用的Windows服务公开一个TCP端点,这一想法是否正确?

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

    好的,我已经创建了一个WCF服务库(RemoteClientLib,其中I RemoteClients定义了我的服务契约,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>
    

    '由于目标计算机主动拒绝,无法建立连接' 我有什么遗漏吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   kenny    15 年前

    This sample 在codeproject.com上,我使用了自托管WCF服务。将它构建为Windows服务是非常直接的。考虑 Topshelf

        2
  •  1
  •   Matt Klepeis    15 年前

    您可以创建一个充当自己主机的windows服务。这是一个 link 到可用于托管WCF服务的各种方法。

        3
  •  0
  •   tomasr    15 年前

    推荐文章