【问题标题】:Intermittent WCF Connection (There was no endpoint .. ) error间歇性 WCF 连接(没有端点 ..)错误
【发布时间】:2013-03-07 14:53:31
【问题描述】:

我有一个托管在 IIS (IIS 8) 中的 WCF 服务。该服务处于 Per Call Mode 并且并发模式设置为 Multiple。我有大约 600 个客户连接到它。它有一个 HTTPS 端点。它还有一个 net.tcp 端点,但未使用。除了我的一些客户之外,并非所有客户都面临着一个非常奇怪的问题。客户端使用一段时间后停止工作。我有错误日志记录,在客户端我看到错误提示

There was no end point listening at ...

服务器或服务上没有错误。该服务似乎运行良好。我可以从浏览器浏览到服务页面,其他客户端仍然可以使用该服务。运行跟踪也无济于事。我已经花了足够的时间试图弄清楚但没有运气。此外,在同一台计算机上,只需重新启动客户端似乎就可以工作并连接到相同的服务。客户端是一个 WinForms 应用程序。 我在我的机器上执行了 DNS 刷新,即使这样也无济于事。

可能的问题是什么?我想到的事情是客户端可能无法解析名称,但这与它首先连接是矛盾的。 该服务可能已关闭,但我的其他客户仍在使用相同的服务,他们没有遇到问题。 这可能是客户端机器的问题,因为它使用 Win XP,但我不确定这是否会导致问题。 或者它可能是由于间歇性互联网连接造成的问题。

以前有人遇到过这样的问题吗?一些见解会非常有帮助

【问题讨论】:

    标签: wcf nettcpbinding basichttpbinding


    【解决方案1】:

    IIS 一次只能为有限数量的客户端提供服务。然后它将其他请求放入队列中。那个队列也是有限的。当该队列填满时,IIS 返回一个 500 错误,这被解释为“没有在...处侦听的端点”

    你应该试试这段代码。

    public void Main()
    {
        while(thereIsStillThisProblem)
        {
            var pc = new Pc();
            pc.OS = new Windows2012();
            pc.Start();
            pc.Software.Add(new ServiceHost());
        }
    }
    

    http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/iis/64e30660-d2f0-4e90-98cc-1652214a2b93.mspx

    编辑:请记住,如果您使用的是 .net 4.5,您还可以做一件事。我会让Jon Skeet explain.

    【讨论】:

    • 你肯定不需要在 pc.OS 和 pc.Start 之前的 var 吗? :) +1 机智但有用的回复
    • @NDJ 固定,也让我们面对它。如今,大多数人在创建 PC 时使用工厂模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多