【问题标题】:AppFabric "WF Instance History" empty for a workflow hosted in IIS对于 IIS 中托管的工作流,AppFabric“WF Instance History”为空
【发布时间】:2015-08-26 20:18:50
【问题描述】:

在使用 AppFabric 仪表板监控 WCF 工作流服务应用程序(.NET 4.5、Windows 7、SQL 2012)时,我注意到“WF 实例历史记录”完全为空。但是,“WCF Call History”和“Persisted WF Instances”都会更新。我从头到尾运行了一些工作流实例。如何启用此功能?

我尝试了以下方法:

  • 确保 SQL 代理服务正在运行
  • 确保 NT AUTHORITY\LOCAL SERVICE(AppFabric 服务帐户)可以登录到 SQL Server - 以前我在事件日志中看到过这个问题
  • 查看了 WfEventsTable - 它是空的,而不是 WcfEventsTable
  • EtwTrackingParticipant 似乎已配置(因为它是自动添加的,不确定...) - 这是我的完整 web.config:

<appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.5">
    </compilation>
    <httpRuntime targetFramework="4.5" />
</system.web>
<system.serviceModel>
    <extensions>
        <behaviorExtensions>
            <add name="stateTracking" type="Microsoft.Activities.Extensions.ServiceModel.StateMachineTrackingElement, Microsoft.Activities.Extensions"/>
            <add name="workflowServiceTrace" type="Microsoft.Activities.Extensions.Diagnostics.WorkflowServiceTraceElement, Microsoft.Activities.Extensions" />
        </behaviorExtensions>
    </extensions>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
                <etwTracking profileName="HealthMonitoring_Tracking_Participant" />
                <sqlWorkflowInstanceStore instanceCompletionAction="DeleteAll" instanceEncodingOption="None" instanceLockedExceptionAction="NoRetry" connectionStringName="ApplicationServerWorkflowInstanceStoreConnectionString" hostLockRenewalPeriod="00:00:30" runnableInstancesDetectionPeriod="00:00:05" />
                <stateTracking />
                <workflowServiceTrace />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
    <diagnostics etwProviderId="5540df62-131b-43f9-9ee7-e811ce1ede3c">
        <endToEndTracing propagateActivity="false" messageFlowTracing="false" />
    </diagnostics>
</system.serviceModel>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
<microsoft.applicationServer>
    <monitoring>
        <default enabled="true" connectionStringName="ApplicationServerMonitoringConnectionString" monitoringLevel="HealthMonitoring" />
    </monitoring>
</microsoft.applicationServer>

有人能指出我正确的方向吗?

【问题讨论】:

    标签: .net wcf iis workflow-foundation appfabric


    【解决方案1】:

    您能否看看是否有一种方法可以将 SqlWorkflowInstanceStore.InstanceCompletionAction 属性更新为“DeleteNothing”。默认值为“全部删除”。

    在这里查看详细信息https://msdn.microsoft.com/en-us/library/system.activities.durableinstancing.sqlworkflowinstancestore.instancecompletionaction(v=vs.110).aspx

    【讨论】:

    • 好吧,我在 web.config 中将 instanceCompletionAction 更改为“DeleteNothing”,但没有结果...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    相关资源
    最近更新 更多