Zrobiłem aktualizację zgodnie z. 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
Dostaję błąd. Czy ktoś jeszcze ma ten błąd?
Błąd serwera w aplikacji „/”.
Nie można załadować pliku lub zestawu „System.Web.Http, Version = 4.0.0.0, Culture = neutralny, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zespołu nie pasuje do odwołania do zespołu. (Wyjątek od HRESULT: 0x80131040)
Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżącego żądania internetowego. Przejrzyj dane śledzenia stosu, aby uzyskać więcej informacji o błędzie i jego źródle w kodzie.Szczegóły wyjątku: System.IO.FileLoadException: Nie można załadować pliku lub zestawu „System.Web.Http, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zespołu nie pasuje do odwołania do zespołu. (Wyjątek od HRESULT: 0x80131040)
Błąd źródła:
Linia 48: Linia 49: Linia 50:} Linia 51: Linia 52: chronione void Application_BeginRequest (nadawca obiektu, EventArgs e)
Plik źródłowy: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs Linia: 50
Śledzenie ładowania zestawu: Poniższe informacje mogą być pomocne w ustaleniu, dlaczego nie można załadować zestawu „System.Web.Http, Version = 4.0.0.0, Culture = neutralny, PublicKeyToken = 31bf3856ad364e35”.
=== Informacja o stanie przed wiązaniem === LOG: DisplayName = System.Web.Http, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = 31bf3856ad364e35 (W pełni określony) LOG: Appbase = plik: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: Początkowa PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin Wywołanie zestawu: ThirdPartyWebAPI, Wersja = 1.0.0.0, Kultura = neutralny, PublicKeyToken = null. === LOG: Powiązanie rozpoczyna się w domyślnym kontekście ładowania. LOG: Za pomocą pliku konfiguracji aplikacji: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: Za pomocą pliku konfiguracji hosta: C: \ Users \ michalc \ Documents \ IISExpress \ config \ aspnet.config LOG: Za pomocą konfiguracji maszyny plik z C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config. LOG: Odniesienie do zasad: System.Web.Http, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = 31bf3856ad364e35 LOG: Próba pobrania nowego pliku URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http.DLL. LOG: Próba pobrania nowego pliku URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL. LOG: Próba pobrania nowego pliku URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Porównanie nazwy zestawu spowodowało niedopasowanie: Błąd wersji głównej: Nie można ukończyć konfiguracji zestawu (hr = 0x80131040). Sondowanie zakończone. Próba pobrania nowego pliku URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Próba pobrania nowego pliku URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Porównanie nazwy zestawu spowodowało niedopasowanie: Błąd wersji głównej: Nie można ukończyć konfiguracji zestawu (hr = 0x80131040). Sondowanie zakończone. Próba pobrania nowego pliku URL: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . LOG: Próba pobrania nowego pliku URL: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL. WRN: Porównanie nazwy zestawu spowodowało niedopasowanie: Błąd wersji głównej: Nie można ukończyć konfiguracji zestawu (hr = 0x80131040). Sondowanie zakończone. Nie udało się ukończyć konfiguracji zestawu (hr = 0x80131040). Sondowanie zakończone. Nie udało się ukończyć konfiguracji zestawu (hr = 0x80131040). Sondowanie zakończone.
Ślad stosu:
[FileLoadException: Nie można załadować pliku lub zestawu „System.Web.Http, Version = 4.0.0.0, Culture = neutralny, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zespołu nie pasuje do odwołania do zespołu. (Wyjątek od HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () in d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50
[HttpException (0x80004005): Nie można załadować pliku lub zestawu „System.Web.Http, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zespołu nie pasuje do odwołania do zespołu. (Wyjątek HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext kontekst HttpApplication APP) +9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext kontekst MethodInfo [] Wózki) +118
System.Web.HttpApplication .InitSpecial (stan HttpApplicationState, procedury obsługi MethodInfo [], kontekst aplikacji IntPtr, kontekst HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (kontekst aplikacji IntPtr, kontekst HttpContext) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication ( kontekst aplikacji IntPtr) +296[HttpException (0x80004005): Nie można załadować pliku lub zestawu „System.Web.Http, Wersja = 4.0.0.0, Kultura = neutralny, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zespołu nie pasuje do odwołania do zespołu. (Wyjątek od HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (kontekst HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (kontekst HttpContext) +101 System.Web.HttpRuntime.Proc7RequesterRequesterRequesterRequesterRextestRequester
Informacje o wersji: Microsoft .NET Framework Wersja: 4.0.30319; Wersja ASP.NET: 4.0.30319.18408
źródło
Odpowiedzi:
Naprawiłem to poprzez ponowną instalację pakietu NuGet , który naprawia zepsute zależności. W menedżerze pakietów uruchom:
źródło
Aby rozwiązać problem Nie można załadować pliku lub zestawu Błąd „System.Web.Http” należy użyć NuGet, aby zainstalować WebHost API sieci Web 2.1.
W eksploratorze rozwiązań w odnośnikach kliknij prawym przyciskiem myszy i wybierz zarządzanie pakietami nuget. (jeśli nie, zainstaluj nuget)
W oknie zarządzania pakietami NuGet po lewej stronie kliknij online, a następnie w prawym górnym rogu wyszukaj Web Host i zainstaluj Microsoft ASP.NET Web API 2.1 Web Host. (Po zainstalowaniu przycisk instalacji zmieni kolor na zielony)
Następnie projekt zostanie ponownie załadowany, a po ponownej kompilacji błąd zostanie rozwiązany, a projekt zostanie debugowany i uruchomiony. Błąd zniknie, a być może „Nie można znaleźć zasobu. Wystarczy dołączyć adres URL (np. Z localhost: 52088 / do localhost: 52088api / produkty)
Twoje pytanie było dobre i pomogło mi.
Mam nadzieję, że ta odpowiedź pomoże!
źródło
Musisz dodać przekierowania zestawu:
Najprawdopodobniej musisz to zrobić dla kilku innych zespołów, takich jak hosting stron internetowych itp.
źródło
System.Web.Http
.Lub możesz to zrobić z konsoli menedżera pakietów NuGet
Następnie będziesz mógł dodać odwołanie do System.Web.Http.WebHost 5.0
źródło
Po zainstalowaniu Web Api 2.2 pomóż ten błąd zaczął. Dodałem to do pliku web.config i to rozwiązało mój problem.
źródło
Po prostu ustawiłem
Copy Local = true
brakujący zestaw i to zadziałało. Dzieje się tak oczywiście poprzez kliknięcie prawym przyciskiem myszy brakującego odwołania (co znajduje się w komunikacie o błędzie) i wybranie właściwości; jak poniżej:To powinno następnie rozwiązać jeden problem, ponieważ przyczyną może być więcej niż jeden zespół - spowodowałem, że wybrałem wszystkie zestawy i kliknąłem je prawym przyciskiem myszy; wybrane właściwości; i ustaw je wszystkie na Kopiuj lokalnie = prawda; a następnie ponownie opublikować.
źródło
Właściwym rozwiązaniem tego problemu jest wykonanie następujących kroków
. Zaktualizuj Visual Studio, jeśli masz starszą wersję do 15.5.4 (opcjonalnie)
Usuń wszystkie przekierowania wiązania z pliku web.config
Dodaj to do pliku csproj:
Budować.
W folderze bin powinien znajdować się
(WebAppName).dll.config
plik.Powinien zawierać przekierowania. Skopiuj je do pliku web.config
Ponownie usuń powyższy wycinek z pliku csproj
To powinno działać
Detailed Blog
źródło
Dla mnie awaria występowała tylko z tym błędem w środowisku produkcyjnym, a nie na komputerze lokalnym; udało się usunąć zawartość folderu / bin, a następnie ponownie ją wygenerować.
źródło
Tylko oczywista, ale możliwa pomocna wskazówka ... pamiętaj, aby sprawdzić, czy nowa wersja określona w powiązaniu zestawu webconfig jest tą samą wersją, do której odwołujesz się w odniesieniach do projektu. (tj. kiedy piszę to ... byłoby to 5.1.0.0, jeśli ostatnio zrobiłeś NUGet na System.Web.Http
źródło
źródło
To może komuś pomóc.
Zdecydowałem się na aplikację MVC4.
uruchomić projekt, pracował
Następnie zainstalowałem kilka pakietów, takich jak
Microsoft ASP.NET WEB API 2.2 (4 pakiety)
Microsoft ASP.NET WEB API 2.2 Strona pomocy
Microsoft ASP.NET WEB API 2.2 OWIN
uruchom projekt, ten sam błąd, jak wspomniano w pytaniu
Rozwiązanie:
W pliku web.config
Problem rozwiązany
ale następnie znaleziono błąd poprawki. Aby go rozwiązać, przejdź do folderu VIEW projektu MVC4, znajdź plik
second
web.config i zmieniono wersję z 2.0.0.0 na 3.0.0.0, jak pokazano poniżej.źródło
W moim przypadku brakowało mi
web.config
całkowicie moich , które miały odpowiednie wiążące przekierowania. Przywrócenieweb.config
rozwiązanego błędu.źródło
Mógłbym rozwiązać podobny problem z System.Net.HTTP poprzez dodanie odwołania do zestawu w app.config głównej aplikacji.
źródło
Znalazłem rozwiązanie! Usuń folder o nazwie pakiet w katalogu projektu, a następnie przebuduj, aby go uruchomić.
źródło
źródło
TAK!!!
W moim przypadku działa dobrze .... thnkz
źródło
Mi nie zrobił nic, po prostu kopiowane rozwoju Bin folderu DLL na online wdrożonej Bin folderu i to działało dobrze dla mnie.
źródło
Jak powiedzieli inni, po prostu zainstaluj ponownie pakiet MVC do projektu internetowego za pomocą nugetu, ale pamiętaj, aby dodać pakiet MVC do wszystkich projektów w zależności od projektu internetowego, takich jak testy jednostkowe. Jeśli zbudujesz każdy dołączony projekt osobno, zobaczysz, że wymagają one aktualizacji.
źródło
Miałem ten sam problem i ponowna instalacja pakietu nie działa.
Moja aplikacja działa w LocalIIS (nie w IIS EXPRESS). Włączam śledzenie zestawu montażowego i dowiaduję się, że chcę załadować System.Web.Http load from below temp catche. więc usuń wszystkie znajdujące się w nim foldery .
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Tymczasowe pliki ASP.NET [moja aplikacja]
źródło
Rozwiązałem ten problem, cofając zmiany, które nuget wprowadził do mnie
web.config
po uruchomieniunuget
. Cofnij zmiany do poprzedniej działającej wersji.źródło
Tym, co rozwiązało problem, było ponowne zainstalowanie stron pomocy Microsoft ASP.NET Web API 2.2 i pakietów OWIN Microsoft ASP.NET Web API 2.2 . Ponownie zainstalowałem oba w tym samym czasie, ale myślę, że to ten pierwszy rozwiązał problem.
Wypróbowałem kilka pierwszych oferowanych tutaj rozwiązań, ale to nie pomogło, a następnie porównałem moje zależności z tymi w projekcie, który zadziałał (z kursu Pluralsight), a dwie powyższe zależności były wersją niższą (5.0.0 ), więc zaktualizowałem je do wersji 5.2.3 i zaczęło działać.
źródło
Miałem to z usługi WCF. Dla mnie (ponieważ problem wyświetlał się w lokalnym dev), po prostu musiałem usunąć zawartość folderu bin pod rozwiązaniem. Przebudowa znów działa dobrze.
źródło
Wersja ASP.NET: 4.0.30319.18408 należy do .Net4.5, a System.Web.Http Version = 4.0.0.0 jest kompatybilny z .NET4.0. Więc posiadane wersje nie są kompatybilne. Zaktualizuj System.Web.Http do wersji 5.0.0.0, która jest kompatybilna z .Net4.5
źródło
Miałem podobny problem. Wszystko działało wcześniej. Został on pierwotnie wykonany przy użyciu formularzy internetowych, a później dodany do niektórych interfejsów API sieci Web.
W Visual Studio działało ustawienie ustawień profilu publikowania z wersji na debugowanie. Dziwne, ale to działało. Więc dzielę się tutaj.
źródło
Ten problem występuje podczas wdrażania na platformie Azure za pomocą funkcji publikowania. Pamiętaj, aby wyczyścić pliki w miejscu docelowym.
Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination
To rozwiązało mój problem, na wypadek gdyby ludzie musieli polować na to, jak ja. W moim projekcie / rozwiązaniu wszystko było w tej samej wersji, tylko nie w miejscu, w którym wdrażałem.
źródło
Jeśli korzystasz z kilku projektów w jednym rozwiązaniu i wywołujesz metodę z jednego projektu do innego projektu, upewnij się, że wszystkie projekty (zwane projektem i projektem wywołującym) używają unikalnej
'System.Net.Http'
wersji .źródło
Zmień flagę wersji Specf z true na false dla dll w referencji
źródło
Miałem ten sam problem z System.Web.Http.WebHost, wersja = 5.2.6.0, ale najnowszy pakiet NuGet to 5.2.7.0. Edytowałem pliki web.config, ponownie instalowałem pakiet NuGet, a następnie edytowałem pliki projektu Visual Studio dla wszystkich moich projektów, aby upewnić się, że nie zachowały się żadne odniesienia do 5.2.6.0. Nawet po tym wszystkim problem nadal występował.
Następnie poszukałem w folderze bin projektu, który zgłosił wyjątek, w którym znalazłem bibliotekę DLL dla jednego z moich innych projektów, który nie jest zależny i nigdy nie powinien tam być. Usunąłem niepoprawną bibliotekę DLL (która została skompilowana przy użyciu System.Web.Http.WebHost w wersji 5.2.6.0), przebudowałem kłopotliwy projekt i teraz działa.
źródło