2010-03-25 60 views
0

我试图让我的头围绕WCF服务的寻址。WCF - 不使用IIS的远程服务 - 基地址?

我们有一个客户端 - 服务器设置,服务器偶尔(可能每天一次)需要将数据推送到每个客户端。我想在NT服务中托管的每个客户端上都有一个轻量级的WCF侦听器服务来接收这些数据。我们已经有了这样一个NT服务设置,它承载了一些本地的WCF服务来完成其他任务,所以这个开销很小。

由于服务器上现有的遗留代码,我认为该服务需要作为ASMX公开,并使用basicHttpBinding来允许它连接。

每个客户端都是由用户在服务器上注册的(他们需要单独配置它们),所以发现不是问题。

我的问题是,寻址是如何工作的?我想象中的形式

http://0.0.0.0/MyService 

甚至

http://hostname/MyService 

如果是这样,我该如何配置它的App.config客户服务的服务器上输入客户地址的用户?我使用localhost

如果没有,那么推荐的服务暴露方式是什么?

注:

  • 我不想在IIS托管作为增加了额外的要求,为客户所需的硬件。
  • 客户端将几乎肯定位于局域网,而不是通过公共互联网

回答

1

您配置服务的基地址,像这样:

<system.serviceModel> 
    <services> 
    <service name="Ns.FooService"> 
     <host> 
     <baseAddresses> 
      <add baseAddress="http://localhost:9999" /> 
     </baseAddresses> 
     </host> 
     <endpoint 
      address="/foo" 
      binding="basicHttpBinding" 
      contract="Ns.IFooContract" /> 
    </service> 
    </services> 
</system.serviceModel> 

然后你的服务可以通过访问http://servename:9999/foo。您可以查看this article了解更多信息。

+0

感谢Darin,那正是我需要知道的。 – 2010-03-25 10:19:07