أفضل عدم تعطيل إصدار وقت التشغيل.
<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>
المزيد من التفاصيل: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html
سؤال
بعد ترحيل TeamCity من خادم إلى آخر ، وكذلك التحول إلى Visual Studio 2013 ، يفشل بناءنا عند استخدام MSDeploy لدفع حزمة .zip من TC إلى IIS.
يحتوي تجمع التطبيقات الذي تحاول استخدامه على خاصية "ManagedRuntImVERSION" على "v4.0". يتطلب هذا التطبيق "v4.5"
هذا خطأ غريب لأن خادم IIS الخاص بي قد تم تثبيته .NET 4.5 تم تثبيته ولحسن الحظ والذي تم نشره لأسابيع ، وسيقوم مجموعة تطبيقات 4.0 بتشغيل تطبيق 4.5 مستهدف.
لسوء الحظ ، يتم تشويه المياه من خلال التغييرات التي تطرأ على TC و VS (2013) ، لذا فإن ما تسبب في المشكلة التي لا يمكنني التأكد منها.
ملاحظة: يحتوي خادم TC الخاص بنا على Visual Studio 2012 فقط ، حيث إنني على MSDN وحصلت على الوصول المبكر إلى عام 2013. قد يكون هذا هو الجاني ، ولكنه لا يجعل المشكلة أقل غرابة.
المحلول
أفضل عدم تعطيل إصدار وقت التشغيل.
<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>
المزيد من التفاصيل: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html
نصائح أخرى
افتح .csproj
الملف وتعيين العنصر التالي:
<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>
إن إضافته فوق هذا العنصر يساعد على قابلية القراءة:
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
مجد ل https://stackoverflow.com/users/1769923/abhishikt-n-jain للرد على هذا الإعداد التكوين غير المعروف هنا:
MSBuild نشر الفشل بعد الترقية إلى .NET 4.5
إذا كان أي شخص يعلم لماذا يحدث هذا ، لا تتردد في إضافة إجابة.
تحديث
تجاهل تعليقاتي أدناه. بينما تجاوزني النشر ، حصلت على ملف 503 Service Unavailable
عندما حاولت بالفعل تشغيل تطبيق الويب. لقد تراجعت عن هذا التغيير عن طريق ضبط managedRuntimeVersion
العودة إلى v4.0 وأضاف IgnoreDeployManagedRuntimeVersion
إلى مشروعي. ثم نجح النشر وعمل التطبيق. أحمق...
حدث هذا لي بعد تثبيت .NET Framework 4.5.1 على جهاز Windows Server 2008 R2 SP1 (كجزء من ترقية PowerShell).
لا تعطي واجهة مستخدم IIS على Windows Server 2008 خيار إعداد managedRuntimeVersion
خاصية إلى v4.5 حتى بعد تثبيت هذا الإصدار. ومع ذلك ، يمكن القيام بذلك على سطر الأوامر باستخدام appcmd
الأداة المساعدة كما تظهر إجابة @3boysdad.
appcmd
هو ما يعادل سطر الأوامر لإدارة مواقع IIS والتطبيقات والتطبيقات ، وما إلى ذلك. %systemroot%\system32\inetsrv\appcmd.exe
لكنه ليس على الطريق كما يشرح الرابط التالي:
أنا أرى أن تعديل مشروعك (عبر IgnoreDeployManagedRuntimeVersion
أو DeployManagedRuntimeVersion
الخصائص) هو دون المستوى الأمثل. يجب تعيين تجمع التطبيقات لاستخدام V4.5 ، والطريقة الوحيدة للقيام بذلك على Windows Server 2008 هي استخدام appcmd
خدمة. يجب أن تكون إجابة 3Boysdad هي الإجابة المقبولة.
وجدت هذه الأحجار الكريمة أثناء البحث حول هذه المشكلة نفسها.
appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5
يجب تنفيذ هذا في دليل system32 inetsrv.