إضافة * جديد * DestinationBinding لموقع إلى حزمة باستخدام msDeploy

StackOverflow https://stackoverflow.com/questions/2280817

سؤال

أنا أستخدم طرازًا انطلاقًا مع MSDeploy لنشر اثنين من مواقعنا في مزرعة ويب. تم تكوين المواقع في IIS على مربعات التدريج فقط ، ثم يتم استخدام MSDePloy لإنشاء خوادم الويب المستهدفة من نقطة الصفر.

يستخدم مربع التدريج روابطه الخاصة (أي لا توجد إدخالات رأس ، و IPS/المنافذ المختلفة ، ولا توجد رؤوس مضيفة) للمواقع التي ستكون حية. عندما أقوم بنشرها أولاً ، لدي ملف XML يستخدم لإعداد حزمة معلمة (باستخدام -declareParamFile التبديل) الذي يعلن المعلمات على النحو التالي:

<parameters>
  <parameter name="site1">
    <parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
  </parameter>
</parameters>

لذلك في XML أعلاه ، يمكنك أن ترى أن الموقع المرحلي يتم استضافته على المنفذ 17000 ك match تم تعيين السمة لمطابقة الربط الذي يحتوي على هذه القيمة.

عندما أقوم بعد ذلك بنشر كل موقع مباشر ، أستخدم معلمات مختلفة XML التي تحدد رأس المضيف الصحيح و IP لهذا الجهاز - أقوم بتطبيق هذا باستخدام مفتاح -PetParamFile. إليك مثال على أحدهم.

<parameters>
  <setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>

لذلك ، نظرًا لأن المعلمة الأصلية يُعلن أنها تتطابق مع أحد الروابط المعروفة - يمكنني استبدال هذا الربط بما أريده فعليًا أن يكون على كل خادم مباشر.

ما أريد القيام به الآن هو نشر الموقع والإضافة الجديد روابط الوجهة إليها التي تتضمن TLDs المختلفة التي لدينا - أي موقع موقع و site.co.uk و site.ca وما إلى ذلك ، وكلها مقيدة على عنوان IP والمنفذ نفسه.

أسباب الرغبة في القيام بذلك هي:

  • لدينا موقع جديد نريد نشره سيحتاج إلى اسم مضيف مختلف ، لكننا لا نريد إعطائه عنوان IP الخاص (ينفد من IPS هنا!) الخوادم لديها بالفعل.
  • هذا يعني إضافة روابط اسم مضيف محددة إلى الموقع الموجود بالفعل هناك ، بدلاً من الاستجابة لأي اسم مضيف.
  • لدينا أربعة أسماء نطاقات تشير حاليًا إلى IP المتوازن للموقع الحالي (.com ، .us ، .ca ، .com.au). في الوقت الحالي ، يعمل خادم الويب لا يهتم برأس المضيف - ولكن عندما يسير الموقع الجديد على نفس IP ، فإنه سوف يعمل ، ولن تعمل أسماء النطاق الأخرى.

المشكلة هي أنني لا أعتقد أن هناك أي طريقة لإضافة هذه المعلومات. لقد حاولت إضافة متعددة setParameter العناصر في XML الثانية ، ولكن هذا ببساطة له تأثير في الكتابة فوق الربط مرارًا وتكرارًا ، مع آخر فائز في نهاية المطاف.

يتمثل أحد الحلول في إضافة روابط "العنصر النائب" لكل موقع من المواقع على مربع التدريج ، والذي يمثل الارتباطات الخارجية المستهدفة لكل اسم مجال ، ومنفذ ، إلخ ؛ ثم أقوم بتعديل ملف المعلمتين لاستبدال تلك الروابط بالأعضاء الحقيقية.

لكن بالنسبة لي هذا يبدو خطأً تمامًا - من شأنه أن يقوم بنمذجة صندوق التدريج إلى تناسب النشر المباشر ؛ يجب ان تكون الطريقة الثانية.

هل من الممكن بالفعل يضيف روابط الموقع مع MSDeploy (إذا كان الأمر كذلك ، كيف؟) ، أم أنها تدعم الاستبدال فقط؟

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

المحلول

بعد الكثير من الرؤوس ، يبدو أنه لا توجد طريقة لإضافة روابط جديدة باستخدام عملية DestinationBinding مع MSDeploy.

ما يمكن أن يكون من الممكن إرفاق برنامج نصي ليتم تنفيذه بعد النشر الذي يضيف الروابط باستخدام APPCMD في كل مرة.

لذلك ، فإن التزامن الأولي عبر MSDeploy من شأنه أن يزيل هذه الروابط (لأنها ليست على خادم التدريج) ولكن البرنامج النصي AppCMD سيضيفها مرة أخرى.

ليس حقًا حلًا مثاليًا ، لأنه نص آخر يجب أن يحدث.

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