KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a problem with a self-hosted wcf duplex callback service. I get an InvalidOperationException with message: This operation would deadlock because the reply cannot be received until the current message completes processing. If you want to allow out-of-order message processing, specify ConcurrencyMode of Reentrant or Multiple on CallbackBehaviorAttribute. Here is my service behavior: [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Reentrant, UseSynchronizationContext = true)] Here is my service contract: [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(IClientCallback))] [ServiceContract] public interface IClientToService { [OperationContract(IsOneWay = false)] LVSSStatus GetLvssStatus(); [OperationContract(IsOneWay = true)] void PickSpecimen(long trackingNumber, int destCode); [OperationContract(IsOneWay = true)] void CancelCurrentPickTransaction(); } Here is my callback interface: public interface ILvssClientCallback { [OperationContract(IsOneWay = true)] void SendClientCallback(LvssCallbackMessage callbackMessage); [OperationContract(IsOneWay = false)] List<SpecimenTemplateDescriptor> GetTemplateDescriptorList(DrawerLayout drawerLayout); [OperationContract(IsOneWay = false)] SpecimenTemplate SelectSpecimenTemplate(string templateName, int version); [OperationContract] void SpecimenStoredInContainer(string containerID, bool isValidRackID, int rackRow, int rackCol, int deckRow, int deckCol, int drawerRow, int drawerCol, long trackingNumber, RobotErrors robotError); [OperationContract] void LvssRobotStatusChange(LVSSStatus status); } I understand that the InvalidOperationException is caused when a callback operation is
Tags (comma-separated)
Save Edits
Cancel