2

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

There was no end point listening at ...

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

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

有没有人遇到过这样的问题?一些见解将非常有帮助

4

1 回答 1

3

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 解释一下。

于 2013-03-07T15:12:23.603 回答