我有配置这样的WCF服务:WCF服务完全锁定
InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Multiple
我在哪里调用服务大约每秒十次约30秒的方法。随机地,服务停止工作,客户端停止在调用该服务的线路上。
在服务器端,我有一个静态对象“MyStaticObject”(未在我的服务中声明,这是服务器上的其他类)。该对象是一个包含一些实例化对象的词典,其中有一个背景工作者。
我不认为数据库中存在死锁,因为它在我尝试访问服务时被锁定,而不是在我尝试访问数据库时。
目前我锁我dictionnary这样:
lock (MyClass.MyStaticLockObject)
{
MyClass.MyStaticObject...;
}
我想知道什么可能导致这种怪异的行为。
在半分钟内300次?为什么??? – Patrick 2011-04-01 19:04:27
是否从多个线程访问“MyStaticObject”? – 2011-04-01 19:06:23
@帕特里克:推测是负载测试。如果这是网络服务的一部分,如果知道它可以采取惩罚,那将是很好的。 – 2011-04-01 19:07:07