2014-10-23 10 views
24

In Visual Studio 2012 ho creato un progetto ASP.NET MVC 4 in cui il framework di destinazione è il .NET Framework 4.5. Quando ho distribuito il mio progetto su un server web ha dato il seguente errore:Impossibile caricare il file o l'assembly 'System.Web.Http.WebHost, Versione = 4.0.0.0, Cultura = neutra, PublicKeyToken = 31bf3856ad364e35'

Could not load file or assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file 
specified. 

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.FileNotFoundException: Could not load file or 
assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The system cannot find the file specified. 

Source Error: 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34237 
+0

Hai utilizzato la distribuzione Web o come l'hai distribuita? – John

+0

@John ho pubblicato e quindi copio i file sull'host – user1688401

+0

Sei in grado di pubblicare direttamente sul server? O usare il web deploy zip o qualcosa del genere? Ciò assicurerà che tutti i file siano inclusi. Assicurarsi inoltre che MVC sia stato installato sul server. – John

risposta

20

Controllare la cartella bin del progetto distribuito. Dovrebbe contenere System.Web.Http.WebHost.dll. Se questa dll si trova in questa cartella, controllala. Se non è 4.0.0.0, è necessario distribuire la versione 4.0.0.0 o modificare la configurazione Web per utilizzare un'altra versione (un'idea non buona a causa delle dipendenze)

+1

l'ho provato ma mi dà quell'errore: http://i.hizliresim.com/R64NGa.png – user1688401

+1

Ti ho detto diverse possibilità di provare. Quale hai provato? – IAfanasov

+0

grazie ora funziona ...ho accettato questo rispondere – user1688401

11

Provare a reinstallare il pacchetto Microsoft.AspNet.WebApi. Aprire Package Manager Console e il tipo:

Update-Package Microsoft.AspNet.WebApi -reinstall 

Attenzione, questo comando rimuovere tutte le dipendenze e si dovrà installare manualmente.

+2

grazie ha funzionato per me –

+0

Modifica packages.config e commenta tutti i riferimenti webapi, quindi puoi eseguire l'installazione senza prima disinstallare. –

25

Ho avuto lo stesso problema oggi durante la distribuzione. Sono stato in grado di risolverlo contrassegnando l'assembly da copiare nel file di distribuzione.

Per fare ciò, nel mio progetto Visual Studio, selezionare l'assembly System.Web.Http.Webhost nei riferimenti e modificare la proprietà "Copia locale" su True. Ho dovuto ripetere questo per alcuni altri assembly che mancavano.

Grazie a questo sito per i suggerimenti - http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx/

0

mi sono imbattuto in questo oggi, dopo la creazione di un nuovo Team Città costruire Agent. Il nuovo agente non ha installato MVC 4, forse parte del problema. Fortunatamente, ho trovato this article che mi ha portato alla soluzione. In Team City, ho appena aggiornato il passo Build per Nuget Restore in modo che non utilizzi la cache locale.

enter image description here

Questo funziona perché la cache potrebbe essere stata stabilita dai corridori di build differenti (MVC) framework già installati.

4

Ho avuto questo errore con un vecchio progetto che stavo tornando a fare un po 'di lavoro. Si scopre che il progetto non stava effettivamente utilizzando WebApi, quindi ho disinstallato Microsoft.AspNet.WebApi utilizzando NuGet. Questo ha risolto il problema per me.

Se avessi effettivamente avuto bisogno di WebApi sono sicuro che l'installazione di nuovo avrebbe risolto anche l'errore.

0

So che questa risposta è stata ricevuta ma ho pensato di aggiungere qualcosa.

Ogni volta che si imposta "copy local" su true su un file che causa l'errore lo pubblicherei e ne ottengo un altro. Quindi ho appena selezionato tutti i file sotto i riferimenti e li ho impostati su true. Questo ha risolto il problema per me.

Problemi correlati