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

时间:2010-03-10 07:51:33

标签: wcf service

我遇到一个问题,即在客户端进行13-14次异步进程调用后WCF服务挂起。这种情况一直发生。客户端是移动JavaFX应用程序。服务器和客户端都没有输出特定错误。有人认为这可能是一个限制问题。

我已将服务端.config参数maxConcurrent调用设置为10到500

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

所以这意味着它应该能够接受超过10个电话,对吧?但是,它没有解决这个问题。仍然挂在第13-14号流程中。

只有一个客户端连接到此Web服务。

你认为错在哪里?

3 个答案:

答案 0 :(得分:4)

打完电话后你关闭了客户端吗? 当我遇到这个问题时,我没有关闭它,并且打开的请求在短时间后阻止了服务。

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

使用

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

using(WcfClient client = new WcfClient()){
// ...
}

答案 1 :(得分:1)

这可能很容易由代码中的任何死锁条件引起。如果您的服务锁定并开始吃掉100%或CPU,您就会死锁。创建转储文件并查看代码所在的位置。

我遇到了同样的问题我的第一个WCF应用程序它是一个字典,我不确定是否在记录代码中同步。


SvcTraceViewer非常有助于搞清楚wcf

答案 2 :(得分:1)

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

代码中的调用非常简单 - 基本上是一系列可序列化对象,在另一侧排队。偶尔会挂起来。重新开始后重新开始。没有数据丢失,但......因为数据是财务数据,接收应用程序是自动交易系统,可能导致非常糟糕的财务问题。尚未能重现它。