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);
}