2012-01-03 2 views
0

Im довольно новичок в wf4, но создали простое консольное приложение с возможностью отправки, одобрения и отклонения. Im теперь пытается создать приложение asp.net, которое потребляет службу, которую я создал, но получаю исключение сбоя, как показано ниже. Это отлично работало в моем консольном приложенииИсключение корреляции asp.net и wf4

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

В основном ive создал 3 простых страницы. первая страница представляет собой простую форму, в которой пользователь отправляет запрос. вторая страница просто распечатывает список запросов. Нажав на один из запросов, вы попадаете на третью страницу, которая печатает более подробное представление запроса с помощью кнопки одобрения и отклонения. Im использует GUID для корреляции, которая передается третьей странице через строку запроса. При нажатии кнопки «Утверждение» выполняется одобрение метода обслуживания, передаваемого в строке строки запроса. На этом этапе я получаю исключение. Странным является Guid в сообщении об ошибке не то же самое, как значение им мимоходом в.

Любые идеи ниже мой код является то, что помогает

1-я страница

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

вторая страница

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

третья страница

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

ответ

0

Исключение указывает, что InstanceStore не смог найти рабочий процесс, связанный с этим ключом. Возможно, что рабочий процесс уже завершен или прерван с ошибкой. Вам нужно получить данные отслеживания в WorkflowService, чтобы узнать, что происходит не так. См. Troubleshooting Workflow Services with diagnostic logging

Смежные вопросы