加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在docker容器中运行的Identity Server 4异常:无法加载DLL

发布时间:2020-12-15 21:02:58 所属栏目:百科 来源:网络整理
导读:我试图让Identity Server 4在Docker容器中运行ASP.NET Core并继续获得以下异常 Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --- System.TypeInitializationException: T
我试图让Identity Server 4在Docker容器中运行ASP.NET Core并继续获得以下异常

Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'Crypto' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native.OpenSsl': The specified module could not be found.
 (Exception from HRESULT: 0x8007007E)
   at Interop.Crypto.GetMaxMdSize()
   at Interop.Crypto..cctor()
   --- End of inner exception stack trace ---
   at Interop.Crypto.GetRandomBytes(Byte[] buf,Int32 num)
   at System.Security.Cryptography.RNGCryptoServiceProvider.GetBytes(Byte[] data)
   at IdentityModel.CryptoRandom.CreateUniqueId(Int32 length)
   at Microsoft.Extensions.DependencyInjection.IdentityServerBuilderExtensions.SetTemporarySigningCredential(IIdentityServerBuilder builder)
   at Microsoft.Extensions.DependencyInjection.IdentityServerServiceCollectionExtensions.AddDeveloperIdentityServer(IServiceCollection services)
   at Identity.Startup.ConfigureServices(IServiceCollection services)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target,Object[] arguments,Signature sig,Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object[] parameters,Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.Internal.ConfigureServicesBuilder.Invoke(Object instance,IServiceCollection exportServices)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
   at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
   at Identity.Program.Main(String[] args)

DockerFile

FROM microsoft/dotnet:latest
WORKDIR /app
ENV ASPNETCORE_URLS http://*:80
EXPOSE 80
ENTRYPOINT ["dotnet","Identity.dll"]
COPY . /app

Project.json

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1","type": "platform"
    },"Microsoft.AspNetCore.Mvc": "1.0.1","Microsoft.AspNetCore.Routing": "1.0.1","Microsoft.AspNetCore.Server.IISIntegration": "1.0.0","Microsoft.AspNetCore.Server.Kestrel": "1.0.1","Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0","Microsoft.Extensions.Configuration.FileExtensions": "1.0.0","Microsoft.Extensions.Configuration.Json": "1.0.0","Microsoft.Extensions.Configuration.CommandLine": "1.0.0","Microsoft.Extensions.Logging": "1.0.0","Microsoft.Extensions.Logging.Console": "1.0.0","Microsoft.Extensions.Logging.Debug": "1.0.0","Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0","Microsoft.AspNetCore.Diagnostics": "1.0.0","Microsoft.AspNet.Http.Abstractions": "1.0.0-rc1-final","CassandraCSharpDriver": "3.1.0-beta1","Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0","Microsoft.AspNetCore.StaticFiles": "1.0.0","Microsoft.AspNetCore.Cors": "1.1.0-preview1-final","Core.Data.Cassandra": "0.1.0","IdentityServer4": "1.0.0-rc2"
  },"tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },"frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6","portable-net45+win8"
      ]
    }
  },"buildOptions": {
    "emitEntryPoint": true,"preserveCompilationContext": true
  },"runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },"publishOptions": {
    "include": [
      "wwwroot","**/*.cshtml","appsettings.json","web.config","Dockerfile.debug","Dockerfile","docker-compose.debug.yml","docker-compose.yml"
    ]
  },"scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  },"tooling": {
    "defaultNamespace": "Identity"
  }
}

解决方法

我相信这是因为你混合了1.0.x,1.1.0包和1.0.0运行时.在任何地方都使用1.0.x或1.1.0(并相应地定位netcoreapp1.0或netcoreapp1.1).关于github的相关问题: https://github.com/dotnet/corefx/issues/12517

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读