Open rahulrajatsingh opened 8 years ago
@rahulrajatsingh Could you tells us a little information?
OperationContext
in any way during the operation execution?From the stack trace, it looks like the exception is coming up when processing the response message generated by the service... it's not finding the same OperationContext
as the one that was present when the request message came in, so likely the context is in the wrong state to look up the necessary information.
OK, found one possible repro scenario: This same exception will happen if the service operation that was called explicitly or implicitly ends up calling another remote service.
However, it will only happen if the calling code instantiates a new OperationContextScope
and does not dispose it correctly, so something like this:
var channel = new SomeServiceClient();
// the following line should be in a using statement
var scope = new OperationContextScope((IContextChannel)channel);
// use OperationContext for something
OperationContext.Current.OutgoingMessageHeaders.Add(new SomeCustomHeader());
// call service
channel.CallSomeOperation();
Code like this causes the OperationContext for the child call to be stuck on the current thread, so when we look at OperationContext.Current later on, we're getting the wrong context.
Please find all the requested details below:
What .NET Version is your code compiled for, and what .NET Framework version is it running no?
4.5.1
Are you using duplex contracts?
No
Does your service code manipulate OperationContext in any way during the operation execution?
Yes we are pushing claims in the OutgoingMessageHeaders for other service calls.
What behaviors are you enabling on your service?
No custom behavior. Its configured to use Single instance with Concurrency mode as Multiple and some throttling using configurations.
@rahulrajatsingh Can you confirm if your code suffers by any chance of the issue mentioned above of not disposing correctly the OperationContextScope
object?
Also, version 0.26.0-build14298
was published yesterday with a workaround for this. Can you try it and let us know if it resolves the issue for you?
I just added this package to my service and tested it. I am getting following exception just by adding this package dependency.