MSDeploy لا يتم نشره على الخادم البعيد باستخدام MSBuild و Visual Studio 2010

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

سؤال

أقوم حاليًا بتشغيل Visual Studio Team System 2010 RC وأحاول الحصول على إعداد خدمة الإنشاء لإنشاء الحل الخاص بي ونشر 3 تطبيقات ويب فيه. لقد قمت بإنشاء تكوين بناء مخصص يسمى Integration وقد قمت بإعداد "اسم موقع الويب/التطبيق على الويب لاستخدامه على خادم الوجهة" في علامة التبويب "الحزمة/النشر" للخصائص لكل تطبيق من تطبيقات الويب.

في تعريف البناء الخاص بي ، قمت بتعيين الوسائط التالية:

/p: deployonbuild = true /p: deploytarget = msdeploypublish /p: msdeploypublishmethod = inproc /p: msdeployserviceurl =http: // my-server-name: 8172/msdeploy.axd /P: EnablePackageProcessLoggingandAssert = صحيح

ومع ذلك ، عندما أقوم بتشغيل البناء ، أحصل على الخطأ التالي ، لجميع تطبيقات الويب الثلاثة:

تحديث setacl (myProjectName).

C: Program Files msbuild Microsoft VisualStudio v10.0 web microsoft.web.publishing.targets (3481،5): خطأ: فشل مهمة نشر الويب. (حاول تنفيذ عملية غير مصرح بها.)

لا أعتقد أن هذه هي مشكلتي الفعلية. يحدث هذا الخطأ بعد الإدخال التالي في السجل: تحديث setacl هذا هو السبب في رسالة الخطأ ، ولكن يبدو أن MSDePloy تحاول نشرها على IIS المحلي على خادم البناء ، وليس الخادم الذي حددته مع معلمة msDePloyServiceurl.

بعد النظر في ملف الأهداف في ملفات C: Program msbuild Microsoft VisualStudio v10.0 web microsoft.web.publishing.targets ، أضفت enablePackageProcessLoggingandAssert ، الذي يضيف تسجيلًا إضافيًا. يعرض السجل سلسلة Emptry لقيمة MSDePloyServiceUrl. لقد لاحظت أيضًا في الهدف أن msdeployserviceurl لديه Squarcase S ، وهو أمر محير إلى حد ما لأن اسم المهمة MSDePloypublish يحتوي على S. الأحرف الكبيرة ، لقد حاولت استخدامه باستخدام الكبير ، ثم باستخدام الأحرف الصغيرة ، ولكن لم يعمل.

زوجان آخران يجب ملاحظة:

  1. تعمل خدمة البناء الخاصة بي كخدمة شبكة.
  2. الخادم الذي أحاول نشره إليه على مجال آخر.
  3. لقد حاولت أيضًا إضافة /p: اسم المستخدم = mydomain myusername /p: password = myPassword إلى قائمة paramter msbuild ، لكن هذا لم يساعد.

هل يعرف أحد ما إذا كنت أقوم بتوفير المعلمات الصحيحة؟ أو تزودني بالذات الصحيحة؟

شكرًا

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

المحلول

بعد العديد من جولات تغيير المعلمات ، تمكنت من العثور على حل والحصول على البناء للنشر بنجاح. كانت المعلمات التي انتهى بي الأمر باستخدام:

/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish 
/p:MSDeployPublishMethod=**RemoteAgent** 
/p:MsDeployServiceUrl=http://my-server-name
/p:username=myusername 
/p:password=mypassword

يبدو أنه عند استخدام InProc ل MSDeployPublishMethod msbuild يتجاهل msdeployserviceurl ويحاول دائمًا النشر على الخادم المحلي. لقد غيرته إلى RemoteAgent ونشرت بنجاح. لقد لاحظت أن ملف الحزمة هو nolonger الموجود في myWebapplication_package المجلد ، لكن هذا ليس مشكلة كبيرة بالنسبة لي.

نصائح أخرى

بالنظر إلى VS2010 هو RTM'D ، قد تفكر في الترقية فقط ومعرفة ما إذا كانت المشكلة تختفي.

بالنسبة لبناء هذا الفريق ، يقوم بنية الفريق بتشغيل ما هو الملف الذي حددته؟ إذا كان ملف حل ، فما عليك سوى تمرير تلك الخصائص إليها لا يعني أنه يتم نشرها بعد ذلك إلى كل ملف مشروع عند بناؤه. عندما تقوم بإنشاء ملفات حلول ، يتم تمرير مجموعة محدودة فقط من الخصائص إلى المشاريع التي يتم بناؤها. إذا كان هذا هو الحال ، فيجب عليك إنشاء ملف .proj والذي سيحل محل ملف الحل الخاص بك بشكل أساسي ويمرر في هذه الخصائص.

لقد قمت مؤخرًا بالتدوين عنها كيفية استبدال ملف الحل الخاص بك بملف msbuild.

اسمحوا لي أن أعرف ما إذا كان هذا لا ينطبق عليك أو لا يساعدك.

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

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