Eu fiz a atualização de acordo com. http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- web-api-2
Eu recebo o erro. Alguém mais recebeu esse erro?
Erro de Servidor na '/' Aplicação.
Não foi possível carregar o arquivo ou assembly 'System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)
Descrição: Ocorreu uma exceção não tratada durante a execução da solicitação da Web atual. Revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele se originou no código.Detalhes da exceção: System.IO.FileLoadException: Não foi possível carregar o arquivo ou assembly 'System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)
Erro de origem:
Linha 48: Linha 49: Linha 50:} Linha 51: Linha 52: void protegido Application_BeginRequest (remetente do objeto, EventArgs e)
Arquivo de origem: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Linha: 50
Rastreio de Carga do Conjunto: As seguintes informações podem ser úteis para determinar por que o conjunto 'System.Web.Http, Versão = 4.0.0.0, Culture = Neutro, PublicKeyToken = 31bf3856ad364e35' não pôde ser carregado.
=== Informações do estado de pré-ligação === LOG: DisplayName = System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 (totalmente especificado) LOG: Appbase = file: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: PrivatePath inicial = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Chamando assembly: ThirdPartyWebAPI, Versão = 1.0.0.0, Cultura = neutra, PublicKeyToken = null. === LOG: Essa ligação é iniciada no contexto de carregamento padrão. LOG: usando o arquivo de configuração do aplicativo: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: usando o arquivo de configuração do host: C: \ Users \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: usando a configuração da máquina arquivo de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: referência pós-política: System.Web.Http, versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 LOG: Tentativa de download de um novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Arquivos ASP.NET temporários / root / 9184b2ea / c6d4b139 / System.Web.Http.DLL. LOG: Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Arquivos ASP.NET temporários / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Tentativa de download do novo arquivo de URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: comparar o nome do assembly resultou na incompatibilidade: Versão principal ERR: falha ao concluir a instalação do assembly (hr = 0x80131040). Sondagem terminada. Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Arquivos ASP.NET temporários / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Tentativa de download do novo arquivo de URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: comparar o nome do assembly resultou na incompatibilidade: Versão principal ERR: falha ao concluir a instalação do assembly (hr = 0x80131040). Sondagem terminada. Tentativa de download do novo arquivo de URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ Arquivos ASP.NET temporários / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Tentativa de download do novo arquivo de URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: comparar o nome do assembly resultou na incompatibilidade: Versão principal ERR: falha ao concluir a instalação do assembly (hr = 0x80131040). Sondagem terminada. Falha ao concluir a instalação do conjunto (hr = 0x80131040). Sondagem terminada. Falha ao concluir a instalação do conjunto (hr = 0x80131040). Sondagem terminada.
Rastreio de pilha:
[FileLoadException: não foi possível carregar o arquivo ou assembly 'System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () em d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50
[HttpException (0x80004005): não foi possível carregar o arquivo ou assembly 'System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext contexto, HttpApplication app) 9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext contexto, MethodInfo- [] manipuladores) 118
System.Web.HttpApplication .InitSpecial (estado HttpApplicationState, manipuladores MethodInfo [], IntPtr appContext, contexto HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, contexto HttpContext) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +296[HttpException (0x80004005): não foi possível carregar o arquivo ou assembly 'System.Web.Http, Versão = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou uma de suas dependências. A definição de manifesto da montagem localizada não corresponde à referência da montagem. (Exceção de HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (contexto HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (contexto HttpContext) +101 System.Web.HttpRuntime.ProcessRequestNonteification,
Informações sobre versão: Versão do Microsoft .NET Framework: 4.0.30319; Versão do ASP.NET: 4.0.30319.18408
fonte
Respostas:
Corrigi isso reinstalando o pacote NuGet , que corrige dependências quebradas. No gerenciador de pacotes, execute:
fonte
Para resolver o erro Não foi possível carregar o arquivo ou assembly 'System.Web.Http', use o NuGet para instalar o Web API 2.1 WebHost.
No Solution Explorer nas referências, clique com o botão direito do mouse e selecione gerenciar pacotes de nuget. (se não houver, instalar nuget)
Na janela Gerenciar pacotes NuGet, no lado esquerdo, clique on-line e, em cima, à direita, procure por Web Host e instale o Microsoft ASP.NET Web API 2.1 Web Host. (Uma vez instalado, o botão de instalação mudará para uma verificação verde)
Depois disso, o projeto será recarregado e, quando for compilado novamente, o erro será resolvido e o projeto será depurado e executado. O erro desapareceu e você pode ser 'O recurso não foi encontrado. Basta anexar o URL (ex: localhost: 52088 / para localhost: 52088api / products)
Sua pergunta foi boa e me ajudou.
Espero que esta resposta ajude!
fonte
Você precisa adicionar redirecionamentos de montagem:
Provavelmente você precisará fazer isso para mais alguns assemblies, como hospedagem na web etc.
fonte
System.Web.Http
.Ou você pode fazer isso no NuGet Package Manager Console
E então você poderá adicionar a referência ao System.Web.Http.WebHost 5.0
fonte
Quando instalei o Web Api 2.2, esse erro foi iniciado. Eu adicionei isso ao web.config e resolveu o meu problema.
fonte
Simplesmente comecei
Copy Local = true
a montagem que faltava e funcionou. Obviamente, isso acontece clicando com o botão direito do mouse na referência ausente (que é declarada na mensagem de erro) e selecionando propriedades; como abaixo:Isso deve resolver um problema, pois pode haver mais de uma montagem causando o problema - o que fiz foi selecionar todas as montagens e clicar com o botão direito do mouse nelas; propriedades selecionadas; e defina todos para Copiar Local = true; e publique novamente.
fonte
A solução adequada para resolver esse problema é seguindo as etapas
. Atualize o Visual studio se você tiver uma versão mais antiga para 15.5.4 (Opcional)
Remova todos os redirecionamentos de ligação do web.config
Adicione isso ao arquivo csproj:
Construir.
Na pasta bin, deve haver um
(WebAppName).dll.config
arquivo.Deveria ter redirecionamentos. Copie-os para o web.config
Remova o snippet acima do arquivo csproj novamente
Deveria funcionar
Detailed Blog
fonte
Para mim, estava apenas travando com esse erro em um ambiente de produção, não em uma máquina local; o que resolveu foi excluir o conteúdo da pasta / bin e depois regenerá-lo novamente.
fonte
Apenas uma dica útil óbvia, mas possível ... lembre-se de verificar se a nova versão especificada na ligação de montagem do webconfig é a mesma versão que você faz referência nas referências do projeto. (ou seja, enquanto escrevo isso ... isso seria 5.1.0.0 se você tiver feito recentemente um NUGet no System.Web.Http
fonte
fonte
Isso pode ajudar alguém.
Eu decidi ir com o aplicativo MVC4.
executar projeto, trabalhou
Em seguida, instalamos alguns pacotes como,
API do Microsoft ASP.NET WEB 2.2 (4 pacotes)
Página da Ajuda do Microsoft ASP.NET WEB API 2.2 Página da Ajuda do
Microsoft ASP.NET WEB API 2.2 OWIN
executar o projeto, o mesmo erro mencionado na pergunta
Solução:
No web.config
Problema resolvido
mas, em seguida, foi encontrado algum erro de hotfix . Para resolvê-lo, vá para a pasta VIEW do seu projeto MVC4, localize o arquivo
second
web.config e a versão alterada de 2.0.0.0 para 3.0.0.0, como mostrado abaixo.fonte
No meu caso, eu estava realmente sentindo falta dos meus
web.config
, que tinham os redirecionamentos de ligação apropriados. A restauração doweb.config
resolveu o erro.fonte
Eu poderia resolver um problema semelhante com o System.Net.HTTP adicionando referência de montagem no app.config do aplicativo principal.
fonte
Eu encontrei a solução! Exclua a pasta denominada pacote no diretório do projeto e, em seguida, recrie para executá-lo.
fonte
fonte
SIM!!!
Funciona bem no meu caso .... thnkz
fonte
Eu não fiz nada, apenas copiei DLLs da pasta Bin de desenvolvimento para a pasta Bin implantada on-line e funcionou bem para mim.
fonte
Como já foi dito, basta reinstalar o pacote MVC no seu projeto da Web usando o nuget, mas certifique-se de adicionar o pacote MVC a qualquer projeto, dependendo do projeto da Web, como testes de unidade. Se você criar cada projeto incluído individualmente, verá que os que precisam da atualização.
fonte
Eu tive o mesmo problema e a reinstalação do pacote não funciona.
Meu aplicativo é executado no LocalIIS (não no IIS EXPRESS). Ativei o Assembly Load Trace e descobri que ele deseja carregar System.Web.Http load from below temp catche. então remova todas as pastas de captura nele.
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Arquivos temporários do ASP.NET [meu aplicativo]
fonte
Resolvi esse problema revertendo as alterações que o nuget havia feito no meu
web.config
após a execuçãonuget
. Reverta as alterações para uma versão de trabalho anterior.fonte
O que resolveu o problema para mim foi reinstalar os pacotes OWIN da Página de Ajuda do Microsoft ASP.NET Web API 2.2 e do Microsoft ASP.NET Web API 2.2 . Reinstalei os dois ao mesmo tempo, mas acho que foi o primeiro que corrigiu o problema.
Tentei as primeiras soluções oferecidas aqui, mas isso não ajudou, então comparei minhas dependências com as de um projeto que funcionou (de um curso em Pluralsight) e as duas dependências acima eram de uma versão inferior (5.0.0 ), então atualizei-os para 5.2.3 e ele começou a funcionar.
fonte
Eu tive isso de um serviço WCF. Para mim (como o problema estava sendo exibido no dev local), eu simplesmente tive que excluir o conteúdo da pasta bin na solução. A reconstrução funciona bem mais uma vez.
fonte
Versão do ASP.NET: 4.0.30319.18408 pertence ao .Net4.5 e System.Web.Http Version = 4.0.0.0 é compatível com o .NET4.0. Portanto, as versões que você possui não são compatíveis. Você deve atualizar o System.Web.Http para a versão 5.0.0.0, que é compatível com .Net4.5
fonte
Eu tive uma questão semelhante. Tudo estava funcionando antes. Ele foi originalmente criado usando Web Forms e, posteriormente, foi adicionado API da Web para algumas coisas.
O que funcionou foi, no Visual Studio, alterar as configurações de perfil de publicação de Release para Debug. Estranho, mas foi o que funcionou. Então, compartilhando aqui.
fonte
Eu tive esse problema ao implantar no Azure usando o recurso Publicar. Lembre-se de limpar os arquivos no destino.
Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination
Isso resolveu meu problema, caso as pessoas tenham que procurar por isso como eu. Tudo estava na mesma versão do meu projeto / solução, mas não no destino em que eu estava implantando.
fonte
Se você usar vários projetos em uma solução e chamar o método em um projeto para outro, verifique se todos os projetos (chamados projeto e projeto de chamada) usam a
'System.Net.Http'
versão exclusiva .fonte
Altere o sinalizador de versão Specfic de true para false para a dll na referência
fonte
Eu tive o mesmo problema com o System.Web.Http.WebHost, Versão = 5.2.6.0, sendo referenciado, mas o pacote NuGet mais recente era o 5.2.7.0. Editei os arquivos web.config, reinstalei o pacote NuGet e editei os arquivos de projeto do visual studio para todos os meus projetos para garantir que nenhuma referência ao 5.2.6.0 persistisse. Mesmo depois de tudo isso, o problema persistiu.
Em seguida, procurei na pasta bin o projeto que estava lançando a exceção, onde encontrei uma DLL para um dos meus outros projetos que não é uma dependência e nunca deveria estar lá. Excluí a DLL ofensiva (que foi compilada usando a versão 5.2.6.0 do System.Web.Http.WebHost), reconstruí o projeto problemático e agora está funcionando.
fonte