【问题标题】:WCF Service Hosted in Windows Service over net tcp通过 net tcp 托管在 Windows 服务中的 WCF 服务
【发布时间】:2011-08-09 07:32:43
【问题描述】:

在我的项目中,我有一个托管在 Windows 服务中的 WCF 服务。我通过netTCPBinding 在 Windows 服务中托管 WCF 服务并安装了 Windows 服务。为了在我的 silverlight 项目中访问 WCF 服务,我添加了 wcf 的服务参考。 但是,当我在 WCF 服务中调用方法时,出现以下错误:

无法连接到 net.tcp://localhost:8732/WCFHost/.
连接尝试持续了一段时间 跨度为 00:00:03.2951885。
TCP 错误代码 10013:已尝试 以被禁止的方式访问套接字 它的访问权限..
这可能是 由于试图访问服务 以跨域的方式,而 服务未配置为 跨域访问。你可能需要 联系服务的所有者 公开套接字跨域策略 通过 HTTP 并将服务托管在 允许的套接字端口范围 4502-4534。

请帮帮我。

【问题讨论】:

  • 您的服务和网站是否托管在同一台机器上?
  • 没有我的 wcf 服务托管在 windows 服务中
  • 我明白了,然后我认为该服务在另一台机器上。两台机器是否位于不同的域(很可能有防火墙将它们分开)?如果是这样,您需要在防火墙上打开一个端口以允许服务调用通过。
  • Windows 服务在我的本地系统上,并且正在从 Visual Studio 运行我的 Silverlight 应用程序

标签: c# silverlight wcf tcp


【解决方案1】:

对于同机连接,最好使用命名管道绑定。

如果您向我们展示您的服务和客户端端点配置,这可能会有所帮助。

编辑:在阅读了您遇到的错误(here 以及其他网站)之后,尝试将端口号从 8732 更改为 4502-4534 之间的某个值作为错误消息建议。

【讨论】:

  • 我的wcf服务app.config文件如下
  • 大声笑,没看到...也许也向我们展示您的 Silverlight app.config。如果你说它可以使用控制台应用程序,那么问题很可能出在 Silverlight 客户端。
  • 我的wcf服务app.config文件端点如下:
  • binding>
  • 我可能遗漏了一些东西,但是你们的服务地址在哪里?
【解决方案2】:

在服务器端和客户端保持相同的协议。可能是您使用不同的协议调用服务。还要检查您是否正在使用 nettcp,您是否可以访问托管服务的机器。

【讨论】:

    【解决方案3】:

    使用 basicHttpBinding 代替 netTCPBinding

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      相关资源
      最近更新 更多