わかりました。これに間違ってアプローチしている可能性がありますが、基本的には、4.0で新しいWFサービスを試して、WFサービスをホストするWindowsサービスを構築しようとしています。現時点では、クライアント(単純なアクティビティXAMLを含む)およびサービス(XAMLXファイルに実装されたWFサービス)プロジェクトを構築しました。
それぞれに簡単な「HelloWorlds」を試してみました。クライアントはでホストされており、WorkflowApplication
最初にサービスをデフォルトのWFサービスプロジェクトテンプレートとして設定しました。どちらも問題ないようです。
IISなしでサービスをホストしたいので、当然、次の試みはでサービスをホストすることでしたWorkflowServiceHost
。これを行うことで、エンドポイントのURIとともに、XamlServices.Load()
返されるオブジェクトを使用してコンストラクターに渡すことができます。クラスにあるようなメンバーメソッドWorkflowServiceHost
がないので心配でした。このメソッドはサービスホストオブジェクトをサービスとして開き、ワークフローのインスタンスを開始すると想定しましたが、その兆候はありません。Run()
WorkflowApplication
Open()
最初は、開始時にテキストファイルに書き込むようにサービスワークフローを設定しましたが、何も起こりませんでした。ブレークポイントを使用してデバッグしようとしましたが、実行時にXAMLXファイルをロードしているため、VSではWFをデバッグできません。そこで、クライアントプロジェクトを少し変更して、のWorkflowServiceHost
代わりにを使用してみましたWorkflowApplication
。hello worldスタイルのワークフローをテストするために使用したのと同じワークフローを使用しましたが、今回はコンソールへの出力がなくWorkflowApplication
、以前は成功していました。
これが、コンソールプロジェクトでワークフローサービスをホストするためにクライアントで行ったことの非常に基本的なことです。ワークフローのXAMLを確認したい場合は、お知らせください。この質問を更新します。のホスティングコードは次のとおりですMain()
。
const String clientAddress = "http://localhost:9998/Client";
WorkflowServiceHost wfHost = new WorkflowServiceHost( new ClientWf(), new Uri(clientAddress) );
wfHost.Open();
while( Console.ReadKey().KeyChar.ToString().ToUpper() != "X" ) { }
wfHost.Close();