سؤال

من أجل تحسين عملية النشر/الإنشاء لتطبيق ASP.NET الخاص بي، أود إنشاء ملف .bat الذي - التي

  • يبني الحل الحالي في وضع الإصدار
  • xcopy الملفات إلى خادم بعيد

من السهل إنشاء إصدار إصدار عبر سطر الأوامر.

ولكن كيف يمكنني نسخ الملفات إلى الخادم البعيد؟

أعتقد أنه يتعين علي تعيين الوجهة البعيدة لمحرك أقراص الشبكة (؟).ومع ذلك، لم أتمكن من الاتصال بالخادم البعيد، على الرغم من أنني قمت بتمكين مشاركة الملفات للمجلد الموجود على الخادم.ربما جدار الحماية يمنع الطلب؟ما هو المنفذ الذي يجب أن أفتحه؟وهل هناك حل اخر؟

يحرر

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

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

المحلول

نظرًا لأنك تقوم بنشر موقع ASP.Net، أفترض أنك في بيئة Windows (أليس هذا ذكيًا؟:)).
لذا !انسَ أمر .bat واذهب إليه بوويرشيل !

على كل حال هذا ليس موضوع سؤالك..للنسخ إلى مجلد بعيد، يجب أن يكون لديك الحقوق للقيام بذلك على بعيد حاسوب.

تحقق مما إذا كان لديك نفس الحساب على جهاز الكمبيوتر المحلي الخاص بك وعلى جهاز الكمبيوتر البعيد.على سبيل المثال، إذا قمت بتسجيل الدخول على جهاز الكمبيوتر المحلي الخاص بك في المجال "العمل" باستخدام تسجيل الدخول "Pipo"، فيجب عليك منح حقوق هذا الحساب للكتابة في المجلد الخاص بك على الكمبيوتر البعيد.

يمكنك تحقيق ذلك من خلال النقر بزر الماوس الأيمن على المجلد وخيارات الأمان ثم تحديد الهوية الصحيحة.

فيما يلي دليل خطوة بخطوة:

http://support.microsoft.com/kb/301281

نصائح أخرى

قد يكون من المفيد نقل الملفات باستخدام XCOPY عبر مسار UNC

\\الجهاز\المجلد

سيتطلب ذلك أن يكون لديك حق الوصول إلى المجلد من الخادم الأصلي.تأكد من مشاركة المجلد ومن منح أذونات القراءة/الكتابة ذات الصلة.

إذا كان الخادم موجودًا على شبكتك المحلية، فأنا أقترح استخدام robocopy بدلاً من xcopy - لديه العديد من الخيارات المفيدة والقدرة على إعادة محاولة الأخطاء.إنه يتعامل مع أسماء UNC بشكل جيد (كما أعتقد xcopy لا للغاية).أعتقد أنه متاح على عملاء Windows الأحدث - إذا لم يكن موجودًا على جهازك، ابحث عنه في Google - فهو متاح في تنزيلات مجموعة الموارد المتنوعة (لا أعرف تفاصيل ما إذا كانت Microsoft قد بدأت في تضمينه في توزيع نظام التشغيل/متى لقد احتفظت به في مجموعة الأدوات الخاصة بي لفترة طويلة جدًا الآن).

إذا لم يكن الخادم محليًا، فيمكنك كتابة عميل FTP لسطر الأوامر لإجراء عملية النقل.إذا كنت بحاجة إلى مزيد من المرونة أو الأمان، فهناك العديد من خيارات نقل الملفات الأخرى، بما في ذلك WinSCP.

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

يمكنك استخدام أي مسار UNC: \\machine\sharedFolder.إذا كنت لا ترغب في إعداد مجلد مشترك، فيمكنك الرجوع إلى أي من محركات الأقراص الموجودة على الجهاز باستخدام علامة $: \\machine\c$\program files\etc.إذا كانت أجهزتك موجودة في Active Directory، أو إذا كان لديك مستخدم محلي على الجهاز المستهدف بنفس اسم المستخدم وكلمة المرور، فسوف يتعامل Windows مع المصادقة بسلاسة.

هل حاولت إطلاق العنان لها؟

http://www.eworldui.net/unleashit/

يمكنه نقل الملفات عبر الشبكات، وتشغيل ملفات الخفافيش سابقة الإنشاء، وإخفاء الملفات، وما إلى ذلك...

اعتدت استخدامه من قبل في مشاريع .net 1.1.

أعتقد أنك تريد:

XCOPY c:\myproject\build\*.* \\server\\build\ /S /E

يبدو أن كل ما سبق هو إجابات كبيرة - يمكنك النظر في استخدام البرنامج النصي msbuild ومهام مجتمع msbuild للقيام بكل هذا - حيث يمكنهم ضغط الإصدار الخاص بك ونقله إلى خادم بعيد.

لقد قمت للتو بإعداد هذا لأحد مواقعنا، واستغرق الأمر بضع ساعات لفهمه، ولكنه ينشئ الموقع في الإصدار، ويحدث ملفات التكوين للإنتاج، ويزيل الملفات غير الضرورية ثم يقوم بالتحميل.

بعد البحث عن الكثير من الإجابات هنا هو الحل

"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top