WorkflowControlClient访问被拒问题排查求助
Unsuspend/Terminate 方法时持续触发 "Access is Denied" 权限错误 我们的客户系统一直依赖 Workflow 处理任务,之前运行完全正常,但最近几天频繁弹出 "Access is Denied" 错误,目前还没法定位到底是哪一环的访问被拒绝了。我初步怀疑的方向包括:数据库连接权限、数据库服务器访问权限、WCF服务的调用权限。
初始错误堆栈信息
Access is denied.
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRunTime operation, ProxyRpc&rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.ServiceModel.Acivities.IWorkflowInstanceManagement.Unsuspend(Guid ID)
8月20日补充:事件日志捕获到的SOAP错误信息
<?xml version="1.0" encoding="utf-8"?> <s:Envelope xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Header> <a:Action s:mustUnderstand="1"> http://www.w3.org/2005/08/addressing/soap/fault </a:Action> <a:RelatesTo>urn:uuid:abc123-123-123-123-abc123</a:RelatesTo> </s:Header><s:Body><s:Fault> <s:Code> <s:Value>s:Sender</s:Value> <s:Subcode> <s:Value xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:FailedAuthentication</s:Value> </s:Subcode></s:Code> <s:Reason> <s:Text xml:lang="en-US">Access is denied. </s:Text> </s:Reason> </s:Fault> </s:Body> </s:Envelope>
8月22日补充:定位到错误触发点
经过对工作流解决方案的排查,发现异常恰好触发在调用 WorkflowControlClient.Unsuspend(GUID) 或 WorkflowControlClient.Terminate(GUID) 方法时,但因为这些方法属于ServiceModel框架内部实现,没法进一步深入排查。
已尝试的排查动作
- 使用系统对应的业务账号登录数据库服务器,验证了账号的访问权限正常
- 重启了WCF宿主服务器,但问题依然存在
现在实在没头绪了,恳请各位大佬指点下后续的排查方向或者可能的解决思路,非常感谢!
内容的提问来源于stack exchange,提问作者JamesYTL

