[A] System.Web.WebPages.Razor.Configuration.HostSection non può essere trasmesso a ... problema web.config


158

Ricevo il seguente errore:

[A] System.Web.WebPages.Razor.Configuration.HostSection non può essere trasmesso a [B] System.Web.WebPages.Razor.Configuration.HostSection. Il tipo A proviene da "System.Web.WebPages.Razor, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" nel contesto "Default" nella posizione "C: \ WINDOWS \ Microsoft.Net \ assembly \ GAC_MSIL \ System .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll'. Il tipo B proviene da "System.Web.WebPages.Razor, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" nel contesto "Default" nella posizione "C: \ Users \ MyName \ AppData \ Local \ Temp \ Temporary File ASP.NET \ root \ 63e7ff36 \ a1cb775d \ assembly \ dl3 \ 8f568c18 \ 9b7ddacf_d04dcf01 \ System.Web.WebPages.Razor.dll '.

Ho cercato nello stackoverflow problemi simili e ho usato le loro soluzioni ma non sembra risolvere il problema che sto riscontrando.

Si è verificato all'improvviso, ho appena premuto soluzione pulita e questo errore è comparso. Ho anche iniziato a utilizzare il ripristino del pacchetto nuget sulla soluzione. Ho anche aggiornato i miei pacchetti (usando Update-package), quindi uno di questi potrebbe avere qualcosa a che fare con questo problema.

Risposte:


274

Sto usando VS2013, MVC 5.2.2.0, Web Api 2. Ho appena cambiato tutte le versioni dalla 2.0.0.0 alla 3.0.0.0 della seguente sezione di Web.config risiede nella cartella Visualizza del mio progetto.

<configSections>
<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>

E il problema viene risolto. BINGO !!


7
Questo ha fatto il lavoro per me. Grazie!
Joseph Woodward,

1
Questo mi ha risolto. Sto convertendo un'app webforms in MVC5.
Ray,

1
@guneysus, come faresti l'equivalente della risposta di Kuntal senza modifica manuale?
tw

@twm In genere Update-Packageanche le modificheweb.config
guneysus

Questo è il motivo per cui ADORO COSÌ!
Homunculus Reticulli,

102

Aggiungo solo i miei due centesimi a questo problema.

Ho scoperto che la causa di questo errore per me era che le cartelle Views web.config facevano riferimento System.Web.WebPages.Razor, Version=2.0.0.0quando tutto il resto stava usando3.0.0.0

Sembra che l'aggiornamento del pacchetto nuget non abbia in qualche modo tenuto conto di questa cartella.


1
è più preciso! web.config nella cartella views.
Rohit Verma,

58

La causa di questo errore è il web.config nella cartella Views che fa riferimento a System.Web.WebPages.Razor, Version = 2.0.0.0 anziché 3.0.0.0.

In genere ciò può accadere dopo un aggiornamento del pacchetto nuget, che non tiene conto di questa cartella.

Aggiorna il Views\Web.configfile:

<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>

per ulteriori informazioni sull'aggiornamento a MVC 5 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to- aspnet-MVC-5-e-web-api-2


5
non sembra una correzione, piuttosto aggirarmi intorno. alcuni progetti potrebbero dipendere solo da
mvc4

12
In particolare, sembra che la correzione di questo errore sia nella sezione "Aggiorna i file web.config nella cartella Views". Sembra che l'aggiornamento da MVC4 -> MVC5 con NuGet non aggiorni automaticamente i numeri di versione in Views / Web.config.
Tyler,

Grazie per il link! Sarebbe stato bello se l'aggiornamento NuGet potesse almeno mostrare un collegamento a quella pagina ...
Jedidja,

Ho seguito la guida e ora non riesco a eseguire il mio sito in modalità debug - mi dice "... Impossibile avviare il progetto con il tipo di output della libreria di classi ..."
Matt

2
Ha funzionato per me, il mio problema principale è stato causato perché non avevo aggiornato le versioni in web.config nella sottocartella Views.
Connectedoftware

13

Ho provato tutti i metodi sopra e il problema non è stato ancora risolto fino a quando non ho inserito le seguenti righe in web.config direttamente nella cartella del progetto.

  <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>

3

Se si ottiene questo con il debugger del percorso, è necessario aggiornare web.config nella cartella Views nell'area per il debugger del percorso.


Salvavita. Grazie.
footunder

Puoi chiarire che per favore.
Si8,

1

Nel mio caso, ho risolto questo problema aggiornando anche Web.config sul server live che VS ha aggiornato durante l'aggiornamento a MVC 5

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.