ОК, наконец-то я выяснил в чем проблема.
В первом посте я писал, что сначала все работало так же, как очаровано, но после некоторых небольших изменений, которые не должны влиять на сохранение рабочего процесса, Sql Workflow Persistence Service не смог сохранить состояние в базе данных.
То, что я не упомянул, я представил рабочий процесс как службу WCF, и оказалось, что это крайне важно для решения этой проблемы. Я приношу извинения всем, кто пытался решить эту проблему с отсутствием информации.
Я использовал действие получения, которое указывал на метод контракта службы WCF. Этот метод возвращал значение сложного типа:
[DataContract]
public class ServiceCallInfo
{
int code;
[DataMember]
public int Code
{
get { return code; }
set { code = value; }
}
string message;
[DataMember]
public string Message
{
get { return message; }
set { message = value; }
}
}
Я связал это возвращаемое значение с новым свойством рабочего процесса.
public static DependencyProperty ReturnInfoProperty = DependencyProperty.Register("ReturnInfo", typeof(my.mynamespace.ServiceCallInfo), typeof(my.mynamespace.StandardContractingWorkflow));
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
[BrowsableAttribute(true)]
[CategoryAttribute("Parameters")]
public my.mynamespace.ServiceCallInfo ReturnInfo
{
get
{
return ((my.mynamespace.ServiceCallInfo)(base.GetValue(my.mynamespace.ReturnInfoProperty)));
}
set
{
base.SetValue(my.mynamespace.ReturnInfoProperty, value);
}
}
Если я только создаю экземпляр этого свойства где-то в коде рабочего процесса, Workflow Runtime не сможет сохранить состояние, и если я этого не сделаю, это состояние будет сохранено должным образом!
Я предполагаю, что по какой-то причине Workflow Runtime не смог сериализовать (или что-либо еще, чтобы сохранить состояние с помощью Sql Workflow Persistence Service) состояние рабочего процесса из-за этого свойства.
Может быть, это из-за определения класса ServiceCallInfo, может быть, это что-то еще ...
Я надеюсь, что кто-то с большими знаниями и опытом сможет сказать, каковы были реальные причины ...
Однако эта проблема решена.