我有配置這樣的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