WCf服务器忙线程单核

时间:2009-07-24 00:20:53

标签: wcf multithreading

我正在尝试设置服务,但我一直收到以下错误

位于http://localhost/Service1.svc的HTTP服务太忙了。

我希望我能解决这个问题。

我没有超载系统,但我在程序中使用了Threads。也许我应该禁用它们?没有?

我正在使用运行Server 2003的旧计算机。我的笔记本电脑是双处理器,因此我没有遇到任何问题。任何人都有处理这个的经验吗?

2 个答案:

答案 0 :(得分:0)

你是如何使用线程的?如果你以错误的方式使用它们,它们很容易以自己的方式进行。

使用线程的天真方式是使用新的Thread()在每个请求上启动一个新线程。开始。这会扼杀你的表现,并没有任何价值。

请考虑在单核计算机上一次只能运行一个线程。即使大多数被阻止,任何超过20个线程的东西都会过多。

答案 1 :(得分:0)

我假设您在客户端应用程序中使用线程,并且每个线程都在调用WCF服务?由于默认的最大并发设置之一,您可能正在运行并发出问题。 WCF允许您配置最大连接数,会话数,调用数等(取决于绑定。)检查绑定配置,并确保您允许所需的并发。

例如,netTcpBinding既有maxConnections设置,也有listenBacklog设置。 listenBacklog允许您在吐出诸如“位于http://localhost/Service1.svc的HTTP服务太忙”之类的消息之前,配置服务主机允许的超出maxConnections的可在监听器上等待的最大通道数。 “