Po sprawdzeniu odwołania do zestawu System.Web.Cors
w eksploratorze rozwiązań, Version
to 5.2.3.0. Właściwość Specific Version
jest ustawiona na False
. Ścieżka do folderu lokalnego folderu projektu. Podczas sprawdzania właściwości .dll w Eksploratorze plików, wersja pliku i wersja pliku. jest również 5.2.3.Nie można załadować zestawu System.Web.Cors po wywołaniu Microsoft.Owin.Cors
Moja Web.config:
<dependentAssembly>
<assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
Moja packages.config (myślę, że kłopotliwy montaż jest Microsoft.AspNet.WebApi.Cors
, ale zawiera inny tutaj z podobnej nazwie):
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net452" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net452" />
Wystąpił błąd w tej linii w Startup.cs
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Oto pełna błąd:
System.IO.FileLoadException was unhandled by user code
FileName=System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
FusionLog==== Pre-bind state information ===
LOG: DisplayName = System.Web.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///P:/project-z4a/project-z4a/
LOG: Initial PrivatePath = P:\project-z4a\project-z4a\bin
Calling assembly : Microsoft.Owin.Cors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: P:\project-z4a\project-z4a\web.config
LOG: Using host configuration file: D:\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.Cors, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
LOG: Attempting download of new URL file:///C:/Users/*****/AppData/Local/Temp/Temporary ASP.NET Files/root/f8163156/5c96d267/System.Web.Cors.DLL.
LOG: Attempting download of new URL file:///C:/Users/*****/AppData/Local/Temp/Temporary ASP.NET Files/root/f8163156/5c96d267/System.Web.Cors/System.Web.Cors.DLL.
LOG: Attempting download of new URL file:///P:/project-z4a/project-z4a/bin/System.Web.Cors.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
HResult=-2146234304
Message=Could not load file or assembly 'System.Web.Cors, Version=5.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=Microsoft.Owin.Cors
StackTrace:
at Microsoft.Owin.Cors.CorsOptions.get_AllowAll()
at z4a_dsa.Startup.Configuration(IAppBuilder app) in P:\project-z4a\project-z4a\Startup.cs:line 23
InnerException:
Tak, widzę, że spodziewa v5.0.0.0, ale nie mogę zobaczyć, gdzie, gdzie i dlaczego dzwoni do tej wersji.
Wykonałem następujące kroki, aby usunąć błąd. Po każdej z wymienionych prób wyczyściłem, a następnie przebudowałem projekt. Błąd nie zmienił się po wykonaniu każdego z tych kroków.
Update-Package
Install-Package Microsoft.AspNet.WebApi.Cors
Uninstall-Package Microsoft.AspNet.WebApi.Cors
, następnieInstall-Package Microsoft.AspNet.WebApi.Cors
Uninstall-Package Microsoft.AspNet.WebApi.Cors
, następnieInstall-Package Microsoft.AspNet.WebApi.Cors -Version 5.2.3
- Obniżona
Microsoft.AspNet.WebApi.Cors
dov5.0.0.0
przez okno Package Manager.
Nie jestem ekspertem w .NET jeszcze, a to jest 4 wystąpienie tego samego błędu z dokładnym innego zespołu za każdym razem, odkąd zacząłem świeżego pusty projekt z Web Api
sprawdzane. I zainstalowałem pakiet z4a-foundation-scaffold-auth
w moim projekcie. Zdecydowanie doceniam wyjaśnienie moich braków w wiedzy tutaj!
EDIT: Użyto ILDASM.exe do obejrzenia zespołu Microsoft.Owin.Cors
. Znaleziono definicję System.Web.Cors v5.0.0.0
w jej definicji manifestu. Domyślam się, że moje pytanie brzmi teraz, jak temu zaradzić?
Sprawdź inne zależne pliki DLL z ILDASM.exe. musi istnieć przynajmniej jeden plik DLL, który wymaga System.Web.Cors v5.0.0.0 – yyou
OK, więc manifest 'Microsoft.Owin.Cors' wymaga' System.Web.Cors v5.0.0.0'. Jak mogę rozwiązać ten problem? –
Czy dodałeś przekierowanie powiązania zestawu do pliku web.config dla System.Web.Cors? Zasadniczo, po prostu przekieruj wszystkie wersje do najnowszej wersji zainstalowanej w głównej aplikacji. https://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx – HackedByChinese