2011-01-24 15 views
14

utworzyć nowy projekt ASP.NET MVC 3 RTM i zamień Referencje dla użyciu ASP.NET MVC 3 kod źródłowyCo to jest błąd w projekcie ASP.NET MVC 3 RTM?

ale kiedy ponownie uruchomić projekt, uzyskać ten wyjątek:

[A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_1.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll'. Type B originates from 'System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'Default' at location 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2505c7ee\369315c5\assembly\dl3\f7bae428\d03eeed8_85bbcb01\System.Web.WebPages.Razor.DLL'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

błąd Źródło:

Line 106:  internal static RazorWebSectionGroup GetRazorSection(string virtualPath) { 
Line 107:   // Get the individual sections (we can only use GetSection in medium trust) and then reconstruct the section group 
Line 108:   return new RazorWebSectionGroup() { 
Line 109:    Host = (HostSection)WebConfigurationManager.GetSection(HostSection.SectionName, virtualPath), 
Line 110:    Pages = (RazorPagesSection)WebConfigurationManager.GetSection(RazorPagesSection.SectionName, virtualPath) 

Source File: E:\GreenTour\webpages\src\System.Web.WebPages.Razor\WebRazorHostFactory.cs Line: 108

Odpowiedz

13

Ten błąd oznacza, że ​​część aplikacji jest kompilowana przy użyciu własnej kopii kodu źródłowego jako punktu odniesienia, podczas gdy w czasie wykonywania znajduje on zespoły referencyjne w GAC. Upewnij się, że zostały usunięte wszystkie odwołania do złożeń wersji MVC 3 zespołów. Obejmuje to wiele rzeczy w plikach web.config, które używają tego tokena klucza publicznego: 31bf3856ad364e35.

0

Mimo że powyższy wątek był przydatny. Nie mogłem działać, dopóki nie utworzyłem "dummy" "podstawowej" aplikacji MVC 4, a następnie porównałem web.configs, aby znaleźć jakiekolwiek zmiany.

13

Po napotkaniu tego samego problemu podczas aktualizacji mojej aplikacji, problem tkwił w pliku web.config znajdującym się w katalogu views, ślepo skopiowałem to ze starej aplikacji (moja zła).

Moje rozwiązanie, utwórz nową aplikację MVC 4 i skopiuj plik web.config z katalogu widoków do aplikacji, która ma problem.

Nadzieja to pomaga

+2

Dzięki - twój komentarz "plik web.config znajdujący się w katalogu widoków" właśnie dał mi "ah ha!" za chwilę. – DaveHogan

+0

To. Zapominam, że istnieją inne pliki web.config pływające wokół w katalogu Views (i podkatalogach). –

+0

+1, twoje rozwiązanie działało jak urok .. :) – dotNETbeginner

0

Naprawiłem to nie usuwając wszelkie odniesienia do zespołów z klucza publicznego 31bf3856ad364e35 jak ten obejmuje wiele zespołów znaczenia.

Zamiast tego powinna być ustalona poprzez aktualizację wszystkich konfiguracji odwołuje

  • System.Web.Mvc 4
  • System.Web.WebPages do 2
  • System.Web.WebPages.Razor do 2

Należy zaktualizować wszystkie pliki web.configs, w tym te w widoku katalogów.