【问题标题】:WCF net.tcp not supported. (socketexception)不支持 WCF net.tcp。 (套接字异常)
【发布时间】:2012-02-19 15:44:05
【问题描述】:

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

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

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

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

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

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

谢谢

【问题讨论】:

  • 您是否想过为什么需要所有这些绑定?互操作性很好,但您已经有 2 个可解释的绑定(Web 和基本),并且 net.tcp 的可解释性最低
  • 通过浏览器访问是什么意思?

标签: c# wcf iis


【解决方案1】:

是的,您是正确的 - Net.TCP 在 IIS 5.1 (Windows XP) 上不可用。

要在 XP 机器上使用 Net.TCP,您有两个托管选项:

  1. 自托管服务(您编写托管服务的程序,使用ServiceHost
  2. Windows 服务托管 - 您的服务托管在 Windows 服务中。
  3. IIS - 仅限 HTTP

有关托管 WCF 服务的各种方法的概述和比较,请参阅 Hosting Services

【讨论】:

    【解决方案2】:

    浏览器(因此为它们提供服务的 IIS)使用 HTTP。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多