WCF net.tcp不受支持。 (socketexception)

时间:2012-01-26 14:53:57

标签: c# wcf iis

我有一个学习应用程序,可以在单一服务中实现最重要的端点。我正在实现net.tcp + wsHttp + BasicHttp和WebHttp,除net.tcp外,它们都工作得很好。当我通过浏览器访问它时,它会告诉我以下内容:

  

不支持协议'net.tcp'。   描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:System.InvalidOperationException:不支持协议'net.tcp'。

似乎是一个相当普遍的问题,因为我通过互联网进行研究并得出结论,因为我在xp上使用本地我不能。当我执行请求时,我得到一个连接被拒绝的Socketexception。

但是我再次创建了另一个只有net.tcp及其端点和绑定的项目,它可以工作!所以它很可能意味着我没有使用IIS。我仍然是wcf的初学者,它告诉我它是由WCF服务主机托管的。

有人可以向我解释我能做些什么才能让它在windows xp上运行?

由于

2 个答案:

答案 0 :(得分:1)

是的,你是对的 - IIS 5.1(Windows XP)上没有Net.TCP。

要在XP计算机上使用Net.TCP,您有两个主机选项:

  1. 自托管服务(使用ServiceHost
  2. 编写承载服务的程序
  3. 托管Windows服务 - 您的服务托管在Windows服务中。
  4. IIS - HTTP
  5. 有关托管WCF服务的各种方法的概述和比较,请参阅Hosting Services

答案 1 :(得分:0)

浏览器(以及因此为其提供服务的IIS)使用HTTP。

TCP是一种较低级别的协议,需要自定义客户端与之通信(例如Windows应用程序)。 WCF服务主机是一个实用程序,可以在调试时为您托管服务。通常你会写一个合适的主机(exe或Windows服务)。