WF4: ошибки "регистрация владельца экземпляра для идентификатора владельца стала недействительной" - PullRequest
0 голосов
/ 10 июля 2020

У нас есть приложение рабочего процесса windows, размещенное в WCF и IIS. Мы включили трассировку в этом приложении, и мы видим большое количество ошибок

System.Runtime.DurableInstancing.InstanceOwnerException: The execution of an InstancePersistenceCommand was interrupted because the instance owner registration for owner ID has become invalid. This error indicates that the in-memory copy of all instances locked by this owner have become stale and should be discarded, along with the InstanceHandles. Typically, this error is best handled by restarting the host.

или

System.Runtime.DurableInstancing.InstanceNotReadyException: No runnable workflow instances were found.

Конечная точка рабочего процесса windows отображается через файл WCFWorkflowService.xamlx, который имеет файл конструктора, но не имеет кода позади файла. В этом случае, как мне проверить, действителен ли дескриптор экземпляра перед вызовом хранилища экземпляров, т.е. реализовать решение, задокументированное здесь ?

SqlWorkflowInstanceStore не отображается в моем коде, он настроен в моем файле web.config.

"windows приложение рабочего процесса, размещенное в WCF и IIS" конфигурация:

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug include ExceptionDetailInFaults="false" />
                <sqlworkflowInstanceStore connectionString="Data Source=
                    <DatabaseConnectionString>" instanceEncodingoption="Gzip" instanceCompletionAction="DeleteNothing" instanceLockedExceptionAction="BasicRetry" hostLockRenewalperiod="68::30"
    runnableInstancesDetectionPeriod="80:00:05"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
    </system.serviceModel>

конфигурация клиента :

<client>
    <endpoint address="http://www.URLInProduction.com/WCFWorkflowService.xamlx" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService contract="WCFServiceReference.IService" name="BasicHttpBinding_IService" />
</client>
...