回答
在WCF中,您可以通过创建ServiceHost类的实例,使用正确的端点和希望公开的服务实现来配置它,并在其上调用Open
。这称为自托管,因为您在自己的应用程序中托管服务(及其端口侦听器)。
或者,您可以将您的服务托管在IIS中,但您应该知道,虽然您可以在IIS 6中托管WCF,但它只允许您托管HTTP和HTTPS端点。如果您想在IIS中托管TCP端点(这是一个好主意),您将需要IIS 7.
阅读全文here。
你可以使用任何端口(只要你得到了它的权限)来承载您的WCF服务。当使用IIS来托管wcf服务时,它有些不同,但在自托管环境中,只需将端口号添加到您的基地址即可。 (使用Vista或Windows Server 2008时,你有权授予访问端口时,不具有管理员权限(例如使用Netsh)运行)
使用例如http服务(或net.tcp)的端口1337只需添加“:1337 /”到您的基地址,剩下的就完成了。
所以基本上,在Windows XP主机n可以通过三种方式来完成 1.自我托管 2.IIS 3.as Windows服务 所以打开一个TCP端口,消费它费时,谈到下自托管或它是承载n个耗费wcf服务的另一种方式还是有其他方式? – kurozakura 2009-06-29 09:20:27
有关使用netsh打开端口的更多信息,请访问:http://msdn.microsoft.com/en-us/library/ms733768.aspx – 2009-11-12 21:58:23
可能是这样的帮助
<services>
<service behaviorConfiguration="configname"
name="servicename">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="MyServiceBinding"
name="NetTcpBindingEndpoint" bindingName="MyServiceBinding"
contract="Interface">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="customBinding" bindingConfiguration="myMexTcpBinding"
name="MexTcpBindingEndpoint" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:prot/TestService" />
</baseAddresses>
</host>
</service>
</services>
所有HTTP绑定使用TCP的传输层工作。因此,您可以使用HTTP绑定和IIS.6来托管在特定TCP端口上运行的WCF服务。
下面是关于如何实现这一目标的walktrough:
配置为从配置文件(或者代码)所需的端口上运行的服务:
<service name="WCFService" behaviorConfiguration="DefaultBehaviour"> <host> <baseAddresses> <add baseAddress="http://localhost:8000/WCFService" /> </baseAddresses> </host> <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="WCFService_mexEndpoint" contract="IMetadataExchange" /> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultBinding" name="WCFService_Endpoint" contract="WCFService.IService1" />
在IIS
创建了一个网站(或虚拟目录)和Co如果它是绑定的,可以在您的baseAddress服务配置中选择的端口上运行(以上示例为8000)。
以上步骤的结果是一个WCF服务,它使用HTTP作为传输协议在传输层的TCP端口8000上运行。
编辑:我相信你在这里做一个小的混乱。如果您试图实现的是二进制传输包,那么唯一的解决方案就是net.tcp绑定,这与IIS不兼容。如果你只是想能够选择连接的TCP端口,那么任何HTTP绑定都可以做到这一点,如我在上面的示例中所述,并且可以在IIS.6中使用。
所以基本上,在Windows XP主机n消费可以用3种方式完成 1。自主托管 2.IIS 3.作为Windows服务 因此打开一个TCP端口并使用它,属于自托管或它是承载n消费wcf服务的另一种方式,或者是否有任何其他方式,即在TCP ? – kurozakura 2009-06-29 09:22:00
我知道它有点晚了..但是,我想你可以使用Visual Studio附带的“WCF服务主机”应用程序。
- 1. WCF托管和端口转发问题
- 2. WCF服务托管在Windows服务通过网络TCP
- 3. 通过TCP |来托管WCF服务构建项目
- 4. WCF监听TCP端口
- 5. 如何部署窗口服务管理端口号托管WCF服务
- 6. 如何为iis托管的wcf svc设置端口?
- 7. IIS托管的WCF服务没有回收TCP端口“winsock资源不足”
- 8. 在一个Windows服务的单个TCP端口上托管多个WCF服务
- 9. Windows服务托管的TCP WCF服务
- 10. 在IIS中托管的NET TCP/HTTP WCF
- 11. TCP Keep Alive连接托管在WCF中
- 12. 在IIS中托管的tcp端点的WCF路由
- 13. 通过Https自托管WCF服务
- 14. 通过控制台托管WCF服务
- 15. BerkeleyPacketFilter,通过TCP滤波器和端口
- 16. 通过TCP共享COM端口
- 17. iphone tcp/ip通过配件端口?
- 18. 自我托管WCF服务上的WCF和客户端通信
- 19. 在同一端口自托管WCF与自托管Web服务器(HTTPListener)。可能?
- 20. 如何通过Internet托管WCF Web服务?
- 21. 通过多个端口托管多个网站
- 22. 如何通过不同的端口建立多个TCP连接?
- 23. 如何通过端口关闭TCP连接?
- 24. 如何打开TCP端口
- 25. TCP端口如何绑定
- 26. Silverlight WCF托管
- 27. RESTful WCF托管
- 28. 如何通过引用非托管库传递托管数组?
- 29. WCF终端无法与IIS托管
- 30. WCF服务托管在客户端
所以基本上,在Windows XP主机n可通过3种方式 1.自我托管 2.IIS 3.as Windows服务 所以打开一个TCP端口,消费它,谈到下自我进行消费托管或是另一种方式承载n消费wcf服务或有任何其他方式,即在TCP下? – kurozakura 2009-06-29 09:22:47