C# 启用工作流持久性时OperationContext.Current将变为null
我正在使用WF4.5和Devart dotConnect(用于持久性)。我正在使用C# 启用工作流持久性时OperationContext.Current将变为null,c#,wcf,workflowservice,workflow-foundation-4.5,C#,Wcf,Workflowservice,Workflow Foundation 4.5,我正在使用WF4.5和Devart dotConnect(用于持久性)。我正在使用WorkflowServiceHost在net.Tcp协议中托管WorkflowService。我正在OperationContext.Current的IncomingMessageHeaders中发送一些信息。在我启用持久性之前,一切都很好。一旦启用持久性,OperationContext.Current就会获取null。我不知道为什么会发生这种情况,OperationContext和Persistence中的数
WorkflowServiceHost
在net.Tcp
协议中托管WorkflowService。我正在OperationContext.Current的IncomingMessageHeaders
中发送一些信息。在我启用持久性之前,一切都很好。一旦启用持久性,OperationContext.Current
就会获取null
。我不知道为什么会发生这种情况,OperationContext
和Persistence
中的数据都是必需的。
这是我的配置
Behaviors.config:
<behaviors>
<endpointBehaviors>
<behavior name="ParametersInHeaderBehaviour">
<HeaderExtension />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WorkflowService_Behavior">
<!--<workflowServiceTrace />-->
<!--<serviceMetadata httpGetEnabled="true" />-->
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceAuthorization principalPermissionMode="Custom" serviceAuthorizationManagerType="Capita.Prism.Authorization.Foundation.Managers.UserAuthorizationManager, Capita.Prism.Authorization.Foundation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null">
<authorizationPolicies>
<add policyType="Authorization.Foundation.ADMappingPolicy, Authorization.Foundation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
</authorizationPolicies>
</serviceAuthorization>
<!--<oracleTracking connectionString="User Id=workflow;Password=oracle;Server=DEVDB;" profileName="Sample Tracking Profile"/>
<oracleInstanceStore connectionString="User Id=workflow;Password=oracle;Server=DEVDB;" instanceEncodingOption="None" instanceCompletionAction="DeleteNothing" instanceLockedExceptionAction="NoRetry" hostLockRenewalPeriod="00:00:30" runnableInstancesDetectionPeriod="00:00:05"/>-->
<workflowIdle timeToUnload="0"/>
<workflowUnhandledException action="AbandonAndSuspend"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
使用此行为OperationContext.Current
可用,但只要我取消对oracleTracking
和oracleInstanceStore
的注释,OperationContext.Current
就设置为空
请帮忙 如果适用,请检查此项:是的,我有相同的问题,这可能会解决它。但我还是不明白为什么会这样,无论如何,谢谢你。您可以将此作为答案发布,我将非常乐意将其标记为解决方案。