2012-01-03 8 views
0

Im assez nouveau à wf4, mais ont créé une application de console simple avec soumettre, approuver et rejeter les capacités très bien. Im essayant maintenant de créer une application d'asp.net qui consomme le service que j'ai créé mais obtient une exception de défaut comme montré ci-dessous. Cela a bien fonctionné dans mon application de consoleasp.net et wf4 corrélation exception

The execution of an InstancePersistenceCommand was interrupted because 
the instance key '3a552603-c92f-2424-085c-7b6fc1a0e98e' was not associated to 
an instance 

Fondamentalement, ive a créé 3 pages simples. la première page est un formulaire simple où l'utilisateur soumet une requête. la 2ème page imprime juste une liste des demandes. En cliquant sur l'une des demandes, vous accédez à la troisième page qui affiche une vue plus détaillée de la demande avec un bouton d'approbation et de refus. Im en utilisant un GUID pour la corrélation qui est passée à la troisième page à travers la chaîne de requête. Cliquez sur le bouton Approuver pour activer la méthode d'approbation du service transmettant la valeur de la chaîne de requête. C'est à ce moment que j'ai l'exception. La chose étrange est guid dans le message d'erreur est pas le même que le passage valeur im dans.

Toutes les idées ci-dessous est mon code est qui aide

1ère page

protected void Unnamed1_Click(object sender, EventArgs e) { 
     ServiceReference1.ServiceClient Client = new ServiceReference1.ServiceClient(); 
     ServiceReference1.Request R = new ServiceReference1.Request(); 
     R.Title = TxtRequestTitle.Text; 
     R.Amount = Convert.ToInt32(TxtAmount.Text); 

     Guid g = Guid.NewGuid(); 

     Client.SubmitRequest(R, g); 

     Response.Write("submitted"); 
    } 

2ème page

protected void Page_Load(object sender, EventArgs e) { 
    using (SqlConnection con = new SqlConnection(@"Data Source=bantai11\sqlexpress;Initial Catalog=RequestMonkey;Integrated Security=True;Asynchronous Processing=True")) { 
     using (SqlCommand com = new SqlCommand()) { 
      com.Connection = con; 

      com.CommandType = System.Data.CommandType.Text; 
      com.CommandText = "Select InstanceId, Title, state from Requests"; 

      DataTable dt = new DataTable(); 
      SqlDataAdapter sda = new SqlDataAdapter(com); 
      sda.Fill(dt); 

      rp.DataSource = dt; 
      rp.DataBind(); 
     } 
    } 
} 

3ème page

protected void Page_Load(object sender, EventArgs e) { 
     this._id = Request.QueryString.Get("Id"); 

     using (SqlConnection con = new SqlConnection(@"Data Source=bantai11\sqlexpress;Initial Catalog=RequestMonkey;Integrated Security=True;Asynchronous Processing=True")) { 
      using (SqlCommand com = new SqlCommand()) { 
       con.Open(); 

       com.Connection = con; 

       com.CommandType = System.Data.CommandType.Text; 
       com.CommandText = "Select InstanceId, Title, state from Requests where instanceid = '" + this._id + "'"; 

       SqlDataReader dr = com.ExecuteReader(); 

       dr.Read(); 

       lblTitle.Text = dr[1].ToString(); 
       lblGuid.Text = dr[0].ToString(); 
       lblAmount.Text = "0"; 
      } 
     } 
} 

protected void btnApprove_Click(object sender, EventArgs e) { 
     ServiceReference1.ServiceClient Client = new ServiceReference1.ServiceClient(); 
     Client.Approve(1, this._id); 
    } 

Répondre

0

L'exception indique que InstanceStore n'a pas trouvé de flux de travail associé à cette clé. Il se peut que le flux de travail soit déjà terminé ou interrompu avec une erreur. Vous devez obtenir des données de suivi sur le WorkflowService pour voir ce qui ne va pas. Voir Troubleshooting Workflow Services with diagnostic logging