سؤال

نقوم حاليًا بنشر تطبيقات الويب عن طريق إنشاء قاعدة بيانات وتشغيل برامج SQL النصية من خلال محلل الاستعلام.ثم نقوم بنسخ الإخراج من "نشر موقع الويب" وإعداد موقع الويب هذا في IIS.

لقد رأينا إعداد الويب في الاستوديو المرئي، ولكن يبدو أن هذا الجزء موثق بشكل ضعيف.على سبيل المثال، ليس من الواضح لنا كيفية مطالبة المستخدم بعنوان IP وكلمة المرور لخادم SQL.نميل أيضًا إلى نشر مواقع الويب بهذه الطريقة ضمن مجلدات مثل http://example.com/project, ، بدلا من مجرد http://example.com.

ثم هناك مشكلات تتعلق بعدم تثبيت AJAX.Net أو عدم تطبيق بعض التصحيحات أو غيرها.

حتى الآن، لدينا إمكانية الوصول الفعلي إلى الخوادم.قريبًا جدًا على الرغم من أننا سنقوم بشحن الأقراص المضغوطة.ما هي المفاضلة العملية بين التدخل اليدوي والأتمتة؟

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

المحلول

تجنب نشر Visual Studio، وقم بالتشغيل الآلي قدر الإمكان.يمكن أن تكون مشاريع نشر الويب وNAnt أصدقائك!

باختصار، إعداد النشر لدينا:

  1. نحن نستخدم RedGate SQL لكتابة الاختلافات بين قاعدة بيانات التطوير وقاعدة البيانات المباشرة.

  2. ملف إنشاء NAnt الذي يستدعي MSBUILD لإنشاء مشروع نشر الويب (.wdproj)، يقوم بضغط تطبيق الويب المترجم الناتج (جنبًا إلى جنب مع البرنامج النصي لتغيير SQL) ثم يقوم بتحميل الملف المضغوط إلى الخادم.

  3. على جانب الخادم، يوجد ملف إنشاء NAnt آخر يجعل التطبيق غير متصل بالإنترنت، ويدعم قاعدة البيانات، ويدعم موقع الويب.يقوم بتشغيل البرنامج النصي لتغيير SQL، ويفك ضغط الإصدار الجديد ويجلب التطبيق عبر الإنترنت.

عادةً ما يتم تشغيل الخطوة 3 "يدويًا" (نقرة مزدوجة واحدة)، ولكن يتم جدولتها أحيانًا في وقت متأخر من الليل.يمكنك أن تفعل الشيء نفسه تمامًا من قرص مضغوط، أو حتى كتابة تطبيق Windows Forms صغير جدًا كملف.

يسعدني جدًا تقديم تفاصيل عن البرنامج النصي NAnt إذا كنت مهتمًا.

نصائح أخرى

هل حاولت استخدام نشر الويب مشروع؟هناك دعم ل مقابل 2008 الآن أيضاً..

أقوم بنشر تطبيقات ASP.NET في الغالب على خوادم Linux.هنا هو سير العمل القياسي الخاص بي:

  • أستخدم مستودع التعليمات البرمجية المصدر (مثل Subversion)
  • على الخادم، لدي برنامج نصي bash يقوم بما يلي:
    • يتحقق من أحدث رمز
    • هل يتم البناء (إنشاء ملفات DLL)
    • تصفية الملفات وصولاً إلى الأساسيات (إزالة ملفات التعليمات البرمجية على سبيل المثال)
    • يقوم بعمل نسخة احتياطية لقاعدة البيانات
    • ينشر الملفات على خادم الويب في دليل مسمى بالتاريخ الحالي
    • يقوم بتحديث قاعدة البيانات إذا تم تضمين مخطط جديد في النشر
    • يجعل التثبيت الجديد هو التثبيت الافتراضي بحيث يتم تقديمه مع الضربة التالية

يتم إجراء الخروج باستخدام إصدار سطر الأوامر من Subversion ويتم البناء باستخدام xbuild (يعمل msbuild بالمثل من مشروع Mono).يتم تنفيذ معظم السحر في ReleaseIt.

على خادم التطوير الخاص بي، لدي تكامل مستمر بشكل أساسي ولكن على جانب الإنتاج، أقوم بالفعل بإدخال SSH إلى الخادم وأبدأ النشر يدويًا عن طريق تشغيل البرنامج النصي.يُطلق على البرنامج النصي الخاص بي اسم "النشر" بذكاء، وهذا ما أكتبه في موجه bash.أنا مبدع للغاية.لا.

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

يستغرق النشر الأولي بضع دقائق، وتستغرق العودة إلى الإصدار السابق بضع ثوانٍ.

لقد كان حلاً جيدًا بالنسبة لي ويعتمد فقط على الأدوات المساعدة لسطر الأوامر الثلاثة (svn، وxbuild، وreleaseit)، وعميل قاعدة البيانات، وSSH، وBash.

أحتاج حقًا إلى تحديث نسخة ReleaseIt على CodePlex في وقت ما:

http://releaseit.codeplex.com/

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