Ciao, grazie per la risposta!
Allora:
1) hai ragione, mi sono scordato di mettere l'eccezione: FileLoadException.
2) Si, credo di aver fatto tutto a modo, ma dopo riporto il codice della mia funzione per sicurezza.
3/4) La stringa di connessione è la stessa, e salva correttamente.
Da quello che ho dedotto io, credo di capire che crei dei file temporanei che, una volta chiusa l'applicazione, vengono cancellati e quindi non riesce più a trovarli una volta riavviata l'applicazione e lanciato il servizio per recuperare il flusso.
Comunque, ecco il codice:
public void ResumeInstance(string workflowID) {
WorkflowRuntime workflowRuntime2 = new WorkflowRuntime();
bool unloadOnIdle = true;
TimeSpan instanceOwnershipDuration = TimeSpan.MaxValue;
TimeSpan loadingInterval = new TimeSpan(0, 2, 0);
string connectionString = "Initial Catalog=Master;Data Source=localhost\\SQLEXPRESS;Integrated Security=SSPI;";
WorkflowPersistenceService _persistence = new SqlWorkflowPersistenceService(connectionString, unloadOnIdle, instanceOwnershipDuration, loadingInterval);
workflowRuntime2.AddService(_persistence);
workflowRuntime2.StartRuntime();
Guid id = new Guid(workflowID);
WorkflowInstance _wfinstance = workflowRuntime2.GetWorkflow(id);
_wfinstance.Load();
}
Vedi qualche inesattezza? Al limite, se l'hai sottomano, puoi riportare il codice della tua funzione?
Ciao e grazie ancora
Edit: Ora è sorto un altro bug, che prima non avevo notato: dopo aver rilevato l'errore sopracitato, se provo a rilanciare l'applicazione ed a ricaricare il wf, ora mi da un'altra eccezione:
System.Workflow.Runtime.WorkflowOwnershipException was unhandled
Message="Il flusso di lavoro non appartiene a WorkflowRuntime. La proprietà di WorkflowRuntime è scaduta oppure il flusso di lavoro appartiene a un altro WorkflowRuntime."
[Edit2] Allora ho verificato queste cose:
- quando lancio il mio flusso di lavoro, la prima volta, mi salva su SQL tutti i dati tranne due campi che rimangono null: ownerID e ownedUntil .
- quando provo a ricaricarlo, mi da l'errore di load file exception, ma sul server SQL mi riempie i due campi lasciati null il precendenza.
- a questo punto, se tento nuovamente di riprendere l'esecuzione, mi da l'eccezione ownership.
Non ci capisco più...