我在IIS(IIS 8)中托管了一个WCF服务。该服务处于Per Call Mode,并发模式设置为Multiple。我有大约600个客户端连接到它。它有一个HTTPS端点。它还有一个net.tcp端点但不使用。并非所有客户都面临一个非常奇怪的问题。使用一段时间后,客户端停止工作。我有错误记录,在客户端我看到错误,说
There was no end point listening at ...
服务器或服务上没有错误。该服务似乎工作正常。我可以从浏览器浏览到服务页面,其他客户端仍然可以使用该服务。运行跟踪也没有帮助。我花了足够的时间试图解决它,但没有运气。此外,在同一台计算机上只需重新启动客户端似乎可以工作并连接到同一服务。客户端是WinForms应用程序。 我在我的机器上执行了DNS刷新,甚至没有帮助。
可能出现什么问题?我想到的事情可能是客户无法解析名称,但这与首先连接的方式相矛盾。 服务可能会下降,但我的其他客户仍在使用相同的服务,他们不会遇到问题。 它可能是客户端机器的一个问题,因为它使用Win XP,但我不确定这是否会导致问题。 或者由于间歇性的互联网连接可能会出现问题。
以前有没有人遇到过这样的问题?一些见解会非常有用
答案 0 :(得分:3)
IIS一次只能为有限数量的客户提供服务。然后它会将其他请求放入队列。那个队列也是有限的。当该队列填满后,IIS返回500错误,该错误被解释为“没有终点收听...”
你应该尝试这段代码。
public void Main()
{
while(thereIsStillThisProblem)
{
var pc = new Pc();
pc.OS = new Windows2012();
pc.Start();
pc.Software.Add(new ServiceHost());
}
}
编辑:记住,如果您使用.net 4.5,还有一件事可以做。我会让Jon Skeet explain.