it-swarm.asia

توقف الموقع عن العمل في asp.net System.Web.WebPages.Razor.Configuration.HostSection لا يمكن إرساله إلى

لدي مشكلة مثل هذا على الخادم

[A] System.Web.WebPages.Razor.Configuration.HostSection لا يمكن إرسالها إلى [B] System.Web.WebPages.Razor.Configuration.HostSection. النوع A ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 2.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. النوع ب ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 1.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll.

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

تفاصيل الاستثناء: System.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection لا يمكن إرساله إلى [B] System.Web.WebPages.Razor.Configuration.HostSection. النوع A ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 2.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. النوع ب ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 1.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll.

خطأ المصدر:

لقد قمت بتثبيت MVC 3 على serer وعلى جهاز الكمبيوتر الخاص بي. لقد حاولت مع استبداله مع codebase 15 يوما ولكن نفس المشكلة موجودة.

الآن أريد حلها. هل تعرف شخص ما كيف يمكنني إصلاحه.

113
user2632851

في Web.config الجذر تأكد من التجميع يحتوي على الإصدار المناسب للتجميع "System.Web.WebPages.Razor" و "System.Web.Mvc". تحقق من وجودها الفعلي وكذلك علامة التجميع "System.Web.WebPages.Razor" الخاصة بي مفقودة مما تسبب في حدوث الخطأ. تم تعيين إصدارات التجميع الخاصة بي على 3.0 و 5.0 على التوالي في وقت كتابة هذا التقرير مع تحديثات NuGet الكاملة. يجب أن يبدو الرمز كالتالي. سيبقى publicKeyToken كما هو بين الإصدارات. في صحتك!

<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <!--some more bidings-->
  <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor"
            publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
<!--some more bidings-->
</assemblyBinding>
200
Ian Flynn

كانت حالتي الترقية من mvc4 إلى mvc5.

لقد تأكدت من أن مراجعاتي كانت متزامنة (مع تطبيق mvc5 تم إنشاؤه حديثًا) ، وقمت بتحديث ملف web.config وفقًا لذلك ولم يعمل بعد. نجحت أخيرًا عندما غيّرت ملف web.config الخاص بي ( داخل دليل الآراء ) من:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

الى هذا:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

تذكر: وقف iis (صريح أو أصلي) ، حل نظيف ، بناء وتشغيل.

40
user3141889

فقط في حال لم تكن إجابة ian كافية (وكانت التجميعات صحيحة ، ولكن الخطأ ما زال خاطئًا) ، فربما لم تقم بتحديث <configSections> لتعكس التجميع الجديد بعد. تأكد من أن جزء التجميع يشير أيضًا إلى الإصدار 3.0 من مكتبة System.Web.WebPages.Razor. مثلا.

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
</sectionGroup>

(لاحظ أنها تشير جميعها إلى version=3.0.0 الآن)

34
Brad Christie

يعمل حل Ian في مشروع واحد ، لكن بالنسبة إلى الآخرين أحتاج إلى معلومات أكثر اكتمالاً في كيفية الترقية إلى MVC 5 و Web API 2

15
Ken Mc

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

الحل الوحيد لهذه المشكلة هو ترقية التطبيق بالكامل إلى أحدث أو تثبيت الحزمة القديمة المتوافقة مع التطبيق الخاص بك

1
ProgrammingNinja

مشكلة:

[A] System.Web.WebPages.Razor.Configuration.HostSection لا يمكن إرسالها إلى [B] System.Web.WebPages.Razor.Configuration.HostSection. النوع A ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 2.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.Net\Assembly\GAC_MSIL\System .Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll. النوع B ينشأ من 'System.Web.WebPages.Razor ، الإصدار = 3.0.0.0 ، الثقافة = محايدة ، PublicKeyToken = 31bf3856ad364e35' في السياق 'الافتراضي' في الموقع 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ملفات ASP.NET المؤقتة\rbs.ceds.todomvcdemo\73d0b7c7\46e3986d\Assembly\dl3\21020800\101279fc_da94cf01\System.Web.WebPages.Razor.dll '.

هوية:

الخطأ هو في ملف التكوين ، أي web.config لمشروعك.

ستجد هنا أن إصدار Razor مضبوط على 2.0.0.0 حيث أنه كما هو الحال في مشروعك 2.0.0.0 غير متوفر.

حل:

الأمر بسيط ، ما عليك سوى تغيير الإصدار من 2.0.0.0 إلى 3.0.0.0 وسيعمل السحر.

type = "System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup، System.Web.WebPages.Razor، Version = 3.0.0.0 type =" System.Web.WebPages.Razor.Configuration.RazorPagesSection، System.WebPages.Razor ، الإصدار = 3.0.0.0

لا تحتاج إلى إعادة توجيه أو نحو ذلك سوف يجعل الأمور معقدة.

1
codebased

افتح موقع ملف dll في نظامك ، وانسخ أحد ملفات dll في موقع ملفك إلى الآخر
وحاول تشغيل المشروع.

0
user4287068

لقد وجدت مشكلة والحل.

1 أستهدف الكود الخاص بي إلى 4.0 ثم أرفع الكود وهو يعمل. قبل ذلك ، أقوم أيضًا بتحديث الكود الخاص بي إلى asp.net MVC 4.

الآن هو العمل :)

0
user2632851

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

  <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Pages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="1.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
0
Fernando Gonzalez Sanchez