When an error occurs in a WCF service, K2 tries to recall the service which was in error
kbt153607
PRODUCTIssue
If you have a WCF (Windows Communication Foundation) service and the service that is used to make a call fails, K2 attempts to make the call once again. It appears that there is no way for this to be disabled and this ends up impacting the environment as the WCF service instance may not be transaction aware.
Symptoms
The following function is an example of what is added within the WCF application:
void ExampleExtensionService.ThrowAnErrorOnPurpose()
{
myLogger.LogIn();
throw new NotImplementedException();
}
As a result, you get two entries in the log files:
[2] INFO ExampleTest- v2.0.0.86 - >>> ExampleServiceTest.svc.cs:2365 (ThrowAnErrorOnPurpose) > IN
[3] INFO ExampleTest - v2.0.0.86 - >>>ExampleServiceTest..svc.cs:2365 (ThrowAnErrorOnPurpose) > IN
Troubleshooting Steps
You may see this issue due to the pass through authentication being enabled. With this, on service calls that fail may be retried here via the service account.
There are two options:
1. You can enable enforce impersonation upon the WCF Service Instance which can be done from the SmartObject Tester tool (Program Files x86 > K2 Blackpearl > Bin > Smart Object Tester).
2. Alternatively, set the delegation context equal to the client Kerberos which can be found in the HostServer.exe.config file (Program Files x86 > K2 bBackpearl > Host Server > Bin).