سؤال

متعلق ب هذا السؤال.

أنا أفهم كيفية تنفيذ نسخة من سير العمل باستخدام WorkflowApplication. وبعد إذا حافظت على تعريف XAML الأصلي للإصدارات القديمة من سير العمل الخاص بك حولها، فيمكنك تحميلها باستخدام اليمين WorkflowApplication البناء.

كيف يمكنك التأكد من ذلك WorkflowServiceHost يستخدم تعريف سير العمل الصحيح عندما تريد استضافة سير العمل في IIS؟

هناك WorkflowServiceHost منشئ يمكنك استخدامه لتحميل تعريف سير العمل، ولكن عندما تستضيف داخل IIS من خلال ملف Xamlx، لا تتصل WorkflowServiceHost نفسك، يتم التعامل مع هذا بطريقة أو بأخرى من قبل IIS. فكيف يمكنني التأكد من تحميل تعريف سير العمل الصحيح للنسخة الصحيحة من سير العمل الخاص بي؟

هل كانت مفيدة؟

المحلول

نهج استخدام Workflowservicehost ليس كل ما هو شكل مختلف باستخدام سير العمل. أساسيات حفظ إصدارات XAML (X) المختلفة لا تزال تنطبق. لذلك في حالة WorksFlowservicehost، تحتاج إلى إنشاء كل من Worksflowservicehost لكل منها استضافة إصدارا مختلفا من Xamlx. كل مع نقطة نهاية مختلفة. لذلك في الأساس نقطة نهاية EN تتناول كلاهما خدمة سير العمل وإصداره.

فكيف تحصل على رسائل من العميل إلى Workflowservicehost الصحيح؟ هنا خدمة توجيه WCF هي صديقك. بدلا من توصيل العميل مباشرة مع WorkFlowservicehost، يستخدمون خدمة توجيه WCF وسيطة. يؤدي هذا بدوره إلى التحقق من الرسائل وتوجيهها إلى Workflowservicehost الذي يستضيف ملف Xamlx المناسب. فكيف يعرف. هناك عدة طرق للقيام بذلك. على سبيل المثال، قم بإجراء بحث قاعدة بيانات باستخدام معرف ارتباط الرسائل مع طلبات سير عمل جديدة دائما الذهاب إلى الإصدار الأخير. أسهل طريقة هي الحصول على خدمة سير العمل إرجاع رقم إصدار كجزء من الطلب الأولي وجعل هذا الجزء المطلوب من كل طلب لاحق. بهذه الطريقة يمكن لخدمة توجيه WCF القيام بكل أعمالها مع إرسال بيانات الرسالة فقط.

مثال على ذلك سيكون:

  1. يقوم العميل بإرسال رسالة بدء تشغيل سير عمل جديد باستخدام معرف الطلب 7 ويستقبل الإصدار 3 مرة أخرى. يستخدم تطبيق العميل URL HTTL: //localhost/myworkflow.xaml و خدمة التوجيه إلى الأمام إلى HTTL: //localhost/myworkflow.v3.xamlx وهو الإصدار الأخير.
  2. الرسالة التالية التي يرسلها إلى سير العمل يحتوي على حسب الطلب والإصدار 3. يستخدم تطبيق العميل URL HTTL: //localhost/myworkflow.xaml وإعادة توجيه خدمة التوجيه إلى HTTL: //localhost/myworkflow.v3.xamlx وهو الإصدار المشار إليه وبعد
  3. يريد تطبيق العميل إرسال رسالة إلى سير عمل أكبر سنا. يستخدم OrderID 2 والإصدار 1 (أجاب عندما تم بدء تشغيل سير العمل هذا). يستخدم تطبيق العميل URL HTTL: //localhost/myworkflow.xaml وخدمة التوجيه إلى الأمام إلى HTTL: //localhost/myworkflow.v1.xamlx وهو الإصدار المذكور.

يفحص هؤلاء screencasts لمزيد من المعلومات حول خدمة توجيه WCF.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top