IIS 和服务之间的 WCF TCP 绑定设置

Posted

技术标签:

【中文标题】IIS 和服务之间的 WCF TCP 绑定设置【英文标题】:WCF TCP Binding setup between IIS and Service 【发布时间】:2011-07-08 12:54:04 【问题描述】:

我开发了 WCF 服务,现在正在阅读有关绑定的信息。据说TCP绑定是最快的,我喜欢用,但它需要WCF到WCF通信?究竟是什么意思?

我有一个基于 IIS 7 的应用程序,它使用 ASP.NET 和 WCF 服务。他们在不同的机器上。我可以使用 TCP 绑定吗?

当我尝试从客户端 (IIS 7) 到 WCF 服务的 tcp 绑定时,我收到连接错误。

是否可以使用从另一台装有 IIS 7 的服务器的 tcp 绑定连接到 WCF 服务?

如果有,怎么办?我在防火墙等上打开端口。哦,wcftestclient 工作,我的应用程序没有。 :(

同样,客户端是 ASP.NET 页面,服务是 WCF,在同一个网络中。

【问题讨论】:

您能否重新说明您的问题的这一部分:“是否可以仅使用来自另一台具有 IIS 7 的服务器的 tcp 绑定来连接到 WCF 服务?”。具体来说,“来自其他带有 IIS 的服务器”是什么意思?请尽可能清晰明确。 “出现连接错误”什么也没说。如果您想获得一些帮助,您必须显示错误消息。此外,您应该使用 WCF 跟踪来获取更多详细信息:msdn.microsoft.com/en-us/library/ms733025.aspx 【参考方案1】:

IIS 使用 http。因此,如果您的意图是从 WCF 客户端与 ASP.NET 应用程序进行通信,您应该使用 http 绑定。在 IIS7 中,您必须手动执行一系列步骤来启用非 HTTP 绑定,但这是可能的。这篇 MSDN 文章向您展示了如何做到这一点 http://msdn.microsoft.com/en-us/magazine/cc163357.aspx

如果您的客户端应用程序是 ASP.NET 应用程序,那么可以,您应该能够在您的 ASP.NET 应用程序(充当 WCF 客户端)和您的其他非 ASP.NET 应用程序之间使用 TCP 绑定应用程序,但作为 WCF 服务的常规应用程序

您可能想尝试使用 TCP 绑定构建一个控制台应用程序作为您的 WCF 客户端,然后:

    从与您的服务相同的盒子运行它,并确保一切正常。 从 IIS 框中针对在另一个框上运行的 WCF 服务运行它,看看它是否有效。

如果这两个都有效,那么它也应该可以在您的 ASP.NET 应用程序中工作。

【讨论】:

很抱歉,您阅读并理解了我的问题。 ASP.NET 是客户端,WCF 是服务,它们在同一个网络中。 好酷。感谢您的编辑和回答。但我的设置有问题。我遇到了连接问题。有没有你推荐我可以按照设置的例子? 你的意思是设置?什么设置?很抱歉我没有跟上。您提到的 WCF 测试客户端是否使用 TCP 绑定?你是从哪里运行它的? 例如,当我使用windows自带的wcftestclient时,一切正常,当我尝试从asp客户端访问wcf时,它抛出超时错误,并且服务宕机错误,甚至尽管该服务正在运行。 好吧,我仍然认为您应该将自己的“测试”客户端构建为简单的控制台应用程序。并按照我在回答中提到的步骤进行操作。它还将为您提供有关可能出现的问题的更多信息,并为这里的任何人提供更多信息以帮助您。

以上是关于IIS 和服务之间的 WCF TCP 绑定设置的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 C# IIS 托管的 WCF NET TCP 服务超时问题

用于 net.tcp 绑定的 WCF url 重写

WCF:单个服务的多个绑定配置

基于 IIS 绑定将 WCF 端点动态绑定到 HTTPS

如何配置net.tcp 的WCF服务

将 HTTPS 绑定添加到 IIS 后,具有 Windows 身份验证的 WCF SOAP Web 服务停止工作