このエラーは、startup.csにAssembly行を追加した後にのみ発生します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;
[Assembly: OwinStartupAttribute(typeof(InnovationInABoxWebApi.App_Start.Startup))]
namespace InnovationInABoxWebApi.App_Start
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
これはpackage.jsonです
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="bootstrap" version="3.0.0" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Cors" version="5.2.5" targetFramework="net451" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.5" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.5" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.5" targetFramework="net451" />
<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.8" targetFramework="net45" />
<package id="Microsoft.IdentityModel.Logging" version="5.2.1" targetFramework="net451" />
<package id="Microsoft.IdentityModel.Tokens" version="5.2.1" targetFramework="net451" />
<package id="Microsoft.Net.Compilers" version="1.3.2" targetFramework="net45" developmentDependency="true" />
<package id="Microsoft.Owin" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Owin.Host.SystemWeb" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.ActiveDirectory" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.Jwt" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Owin.Security.OAuth" version="4.0.0" targetFramework="net451" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="10.0.1" targetFramework="net451" />
<package id="Owin" version="1.0" targetFramework="net451" />
<package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="System.IdentityModel.Tokens.Jwt" version="5.2.1" targetFramework="net451" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>
完全なエラー
Could not load file or Assembly 'Microsoft.IdentityModel.Protocols.WsFederation, Version=5.2.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 'Microsoft.IdentityModel.Protocols.WsFederation, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
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 'Microsoft.IdentityModel.Protocols.WsFederation, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.
WRN: Assembly binding logging is turned OFF.
To enable Assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with Assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Stack Trace:
[FileNotFoundException: Could not load file or Assembly 'Microsoft.IdentityModel.Protocols.WsFederation, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
Microsoft.Owin.Security.ActiveDirectory.WsFedMetadataRetriever.GetSigningKeys(String metadataEndpoint, TimeSpan backchannelTimeout, HttpMessageHandler backchannelHttpHandler) +0
Microsoft.Owin.Security.ActiveDirectory.WsFedCachingSecurityKeyProvider.RetrieveMetadata() +146
Microsoft.Owin.Security.ActiveDirectory.WsFedCachingSecurityKeyProvider..ctor(String metadataEndpoint, ICertificateValidator backchannelCertificateValidator, TimeSpan backchannelTimeout, HttpMessageHandler backchannelHttpHandler) +296
Owin.WindowsAzureActiveDirectoryBearerAuthenticationExtensions.UseWindowsAzureActiveDirectoryBearerAuthentication(IAppBuilder app, WindowsAzureActiveDirectoryBearerAuthenticationOptions options) +163
InnovationInABoxWebApi.App_Start.Startup.ConfigureAuth(IAppBuilder app) in C:\Users\valencil\source\repos\InnovationInABoxWebApi2\InnovationInABoxWebApi\App_Start\Startup.Auth.cs:15
InnovationInABoxWebApi.App_Start.Startup.Configuration(IAppBuilder app) in C:\Users\valencil\source\repos\InnovationInABoxWebApi2\InnovationInABoxWebApi\Startup.cs:15
このパッケージをインストールしてみてください
Nuget Install-Package Microsoft.IdentityModel.Protocols.WsFederation -Version 5.2.0.0
DependentAssembly "Microsoft.IdentityModel.Protocols.WsFederation"の古いバージョン番号と新しいバージョン番号のWeb.Configを確認します。 Visual Studioのデフォルトテンプレートでは、最後にバージョン番号に「0」が1つ追加されています。例実際の値:oldVersion = "0.0.0.0-5.2.1.0.0" newVersion = "5.2.1.0.0"値を次のように置き換えます:oldVersion = "0.0.0.0-5.2.1.0" newVersion = "5.2.1.0"
パッケージマネージャーコンソールを開き、Install-Package Microsoft.IdentityModel.Protocols.WsFederation -Version 5.2.1.0を実行します。
この手順で問題が解決しました