2013-02-04 22 views
17

Sto usando umbraco 4.11.3 nel mio progetto. Il mio progetto funziona bene, è su Windows 7 e lo eseguo da Visual Studio 2012. Ma non ha funzionato Vinci 8 quando viene eseguito da Visual Studio 2012!Impossibile caricare il file o l'assemblaggio System.Web.Mvc

errore è:

Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

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.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.

=== Pre-bind state information === LOG: User = Jahan-PC\jahan LOG: DisplayName = System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Fully-specified) LOG: Appbase = file:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/ LOG: Initial PrivatePath = G:\20130204\SourceCode\Defraz.Movafaqiyat.WebApp\Defraz.Movafaqiyat.WebApp\bin Calling assembly : ClientDependency.Core.Mvc, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null. === LOG: This bind starts in default load context. LOG: Using application configuration file: G:\20130204\SourceCode\Defraz.Movafaqiyat.WebApp\Defraz.Movafaqiyat.WebApp\web.config LOG: Using host configuration file: C:\Users\jahan\Documents\IISExpress\config\aspnet.config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Post-policy reference: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 LOG: Attempting download of new URL file:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc.DLL. LOG: Attempting download of new URL file:///C:/Users/jahan/AppData/Local/Temp/Temporary ASP.NET Files/root/bc5b37d0/42db0b24/System.Web.Mvc/System.Web.Mvc.DLL. LOG: Attempting download of new URL file:///G:/20130204/SourceCode/Defraz.Movafaqiyat.WebApp/Defraz.Movafaqiyat.WebApp/bin/System.Web.Mvc.DLL. WRN: Comparing the assembly name resulted in the mismatch: Major Version ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Stack Trace:

[FileLoadException: Could not load file or assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
ClientDependency.Core.Mvc.MvcFilter.ValidateCurrentHandler() +0
ClientDependency.Core.Module.ClientDependencyModule.b__0(IFilter f) +31 System.Linq.Enumerable.Any(IEnumerable 1 source, Func 2 predicate) +146
ClientDependency.Core.Module.ClientDependencyModule.ValidateCurrentHandler(IEnumerable`1 filters) +127
ClientDependency.Core.Module.ClientDependencyModule.HandleRequest(Object sender, EventArgs e) +179
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

Nota: progetto pubblicato su IIS funziona bene in win7 e Win8. Il mio progetto non è basato su ASP.NET MVC. Per favore aiutatemi.

+1

è il supporto .NET 2.0 installato nel server Web IIS? In tal caso, l'installazione dell'applicazione consente di utilizzare il pool di applicazioni corretto? con questo supporto .Net 3.5 dovrebbe essere aggiunto e quindi è necessario il framework MVC di ASP.NET raccomanderei l'installazione di 1,2,3 e 4 in tale ordine per mantenere i file sul posto –

+0

@MartinBarker Il download di tutte le versioni MVC è _non_ il modo per risolvere questo problema, poiché si limiterebbe a mascherare un potenziale problema e potenzialmente a propagare questo stesso problema nei progetti futuri di questo utente. – Digbyswift

+1

@ MartinBarker: Grazie mille. Ho installato ASP.NET MVC2 da http://www.microsoft.com/en-us/download/details.aspx?id=22079 su win8 e il mio problema è stato risolto. – Jahan

risposta

12

Utilizziamo il cloud di Azure per eseguire una distribuzione e ho ricevuto lo stesso errore. Dal momento che non è possibile installare i pacchetti sulle istanze del server, il modo per risolverli è entrare in References per il progetto, trovare il riferimento alla libreria che lamenta mancante, andare in proprietà, quindi impostare Copy Local su True. Ridistribuisci e tutto è pronto.

6

Suppongo che questa sia una nuova macchina, visto che si dispone del nuovo sistema operativo e di una versione diversa di Visual Studio. Penso che sia necessario installare MVC Framework versione 2, poiché è quello che si aspetta l'installazione di Umbraco. Puoi installare il Framework e ottenere le DLL nel tuo GAC, oppure copiare le DLL dal tuo buon sistema nella cartella bin della tua applicazione web.

Nota, stai dicendo che il tuo progetto "non usa" MVC, ma penso che troverai Umbraco. L'errore, in ogni caso, ti sta dicendo che il sistema si aspetta di trovarlo.

+0

: Grazie mille. Ho installato ASP.NET MVC2 da microsoft.com/en-us/download/details.aspx?id=22079 su win8 e il mio problema è stato risolto. – Jahan

3

Umbraco 4.11.3 non utilizza MVC2, utilizza MVC3 quindi suppongo che tu abbia un riferimento nel tuo web.config alla libreria MVC2, possibilmente nella sezione compilation > assemblies. Dovrebbe essere qualcosa del tipo:

<compilation defaultLanguage="c#" batch="false" targetFramework="4.0" debug="true"> 
    <assemblies> 
    <!-- ASP.NET 4.0 Assemblies --> 
    <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
    <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
    <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
    <!-- Added in Umbraco 4.6.2 --> 
    <buildProviders> 
    <add extension=".cshtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" /> 
    <add extension=".vbhtml" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" /> 
    <add extension=".razor" type="umbraco.MacroEngines.RazorBuildProvider, umbraco.MacroEngines" /> 
    </buildProviders> 
    <!-- End of added in Umbraco 4.6.2 --> 
</compilation> 
+0

Nel mio web.config, nella sezione compilation> assembly: Jahan

+2

Ok, ma l'errore che hai postato non puntare a un riferimento alla versione 2 nel file di configurazione. Hai controllato il resto del web.config? Ci scusiamo per aver chiesto l'ovvio. – Digbyswift

+0

Grazie per l'attenzione sul mio problema ma la soluzione di Jonathan era perfetta. – Jahan

4

la correttezza correzione di questo problema è quello di:

  1. fare clic destro su References nel vostro Solution Explorer e scegliere Manage NuGet Packages
  2. Sul lato sinistro selezionare Updates
  3. Nella sezione centrale selezionare Microsoft ASP.NET MVC
  4. Si dovrebbe vedere un pulsante Update visualizzato nella selezione, fare clic su di esso

Cioè ... accetta qualsiasi T & C che potrebbe apparire e pubblicare o eseguire il tuo progetto localmente. Se hai ancora problemi nell'esecuzione del progetto in locale, prova a chiudere Visual Studio eliminando il file .SUO per il progetto e prova ad aprire di nuovo la soluzione ... prova a eseguire nuovamente.

+0

Grazie amico, odio ASP.NET per queste cose –

+1

Che grande semplice semplice da seguire che sicuramente catturerà molti di questi problemi prima di andare a scavare nelle cose e creare più problemi. Grazie!! – Alan

Problemi correlati