Загрузить рабочий процесс в 2 страницы ASPX - PullRequest
0 голосов
/ 12 июля 2011

Я работаю над проектом ASP .net.У меня есть 2 страницы.На первой странице у меня есть следующий код, который создает новый рабочий процесс

           var connStr = @"Data Source=M-PC\SQLEXPRESS;Initial Catalog=sella;Integrated Security=True;Pooling=False";
        AutoResetEvent syncEvent = new AutoResetEvent(false);
        var store = new SqlWorkflowInstanceStore(connStr);
        var app = new WorkflowApplication(new Activity1() { str = 4 });
        app.InstanceStore = store;

        app.Idle = delegate(WorkflowApplicationIdleEventArgs o)
        {

            syncEvent.Set();
        };

        app.Unloaded = (workflowApplicationEventArgs) =>
        {
            syncEvent.Set();
        };

        app.Run();
        syncEvent.WaitOne();

        string text = TextBox3.Text;
        app.ResumeBookmark("readText", text);
        syncEvent.WaitOne();
        app.Unload();
        syncEvent.WaitOne();
        Response.Redirect("WebForm1.aspx");

Затем на следующей странице WebForm1 я пытаюсь перезагрузить тот же рабочий процесс из хранилища экземпляров для возобновления другой закладки со следующейкод.

          var connStr = @"Data Source=M-PC\SQLEXPRESS;Initial Catalog=sella;Integrated Security=True;Pooling=False";
        AutoResetEvent syncEvent = new AutoResetEvent(false);
        var store = new SqlWorkflowInstanceStore(connStr);
        var app = new WorkflowApplication(new Activity1());
        app.InstanceStore = store;

        app.Idle = delegate(WorkflowApplicationIdleEventArgs o)
        {

            syncEvent.Set();
        };
        app.Completed = delegate(WorkflowApplicationCompletedEventArgs o)
        {
            syncEvent.Set();
        };

        id = new Guid(TextBox2.Text.ToString());
        app.Load(id);
        syncEvent.WaitOne();
        app.Run();
        syncEvent.WaitOne();

        string text = TextBox1.Text;
        app.ResumeBookmark("readText1", text);
        syncEvent.WaitOne();

Но когда я выполняю рабочий процесс, ничего не происходит.У кого-нибудь есть идеи как к нему подойти?Спасибо за ваше время

1 Ответ

2 голосов
/ 12 июля 2011

Похоже, что вы будете блокировать первый WaitOne, так как после загрузки рабочий процесс не будет работать, пока он не будет запущен

Рабочий процесс запускается, если вы удалите первое ожидание?

...