WCF服务在第14次呼叫时挂起

WCF服务在第14次呼叫时挂起,wcf,service,Wcf,Service,我遇到了一个问题,WCF服务在客户端13-14次异步进程调用后挂起。这种情况经常发生。客户端是一个移动JavaFX应用程序。在服务器和客户端中都没有输出特定错误。有人建议这可能是一个节流问题 我已经将service side.config参数maxConcurrent calls设置为10到500 <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500” /> 这很容易由代码中的任何死锁条件引起

我遇到了一个问题,WCF服务在客户端13-14次异步进程调用后挂起。这种情况经常发生。客户端是一个移动JavaFX应用程序。在服务器和客户端中都没有输出特定错误。有人建议这可能是一个节流问题

我已经将service side.config参数maxConcurrent calls设置为10到500

<serviceThrottling maxConcurrentCalls="500"  maxConcurrentSessions="500” />

这很容易由代码中的任何死锁条件引起。如果您的服务锁定并开始消耗100%的CPU,那么您就有一个死锁。创建一个转储文件并查看代码所在的位置

我在我的第一个WCF应用程序中遇到了同样的问题,那是一个字典,我不能确保它在日志代码中是同步的



SvcTraceViewer非常有助于确定艰难的wcf

您在通话后是否关闭客户端? 当我遇到这个问题时,我没有关闭它,打开的请求在短时间后阻止了服务

编辑:好的,我对JavaFX=)一无所知。下面的代码是C#,对不起。但你肯定可以做类似的事情

使用其中一个

WcfClient client = new WcfClient()
// ...
client.Close()


类似的问题在这里-我有一个应用程序调用从一个进程到另一个,本地,命名为管道


调用在代码中非常简单——基本上是使用一个可序列化对象数组,在另一端对它们进行排队。偶尔它会挂起来。在rtimeout后重新启动。没有数据丢失,但是。。。由于数据是财务数据,而接收应用程序是自动交易系统,这可能会导致非常糟糕的财务问题。无法复制它。

很可能您的主机进程的线程池中的线程已用完。感谢Jens的回复。我有这些应该按顺序执行的方法。callOpen()callRegister()callGetInfoIDC()//这些将被反复调用callDeregister()callClose()callCleanUp()发生的情况是,当客户端第13次或第14次调用callGetInfoIDC()时,服务器挂起。如果我没领会你的意思,请纠正我*这里有点混乱。如果你在10次呼叫后取消注册/关闭/清理,然后打开一个新的连接,会有帮助吗?请不要使用(…)
呼叫执行
。使用此方法,即使连接尚未完成,Using调用也会对连接进行dispose处理。这将导致更多的异常……不,CPU使用率相当低,约为2-5%。我会试着离开,然后再找你。感谢您的输入重新运行这是java的转储文件这是wcf服务器的转储文件
using(WcfClient client = new WcfClient()){
// ...
}