2016-10-28 10 views
3

ドッキング・コンテナー内でIdentity Server 4をASP.NET Coreで実行しようとしていますが、次の例外ドッキング・コンテナー内で実行されているIdentity Server 4例外:DLL 'System.Security.Cryptography.Native.OpenSsl'をロードできません

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, Object[] parameters, 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" 
    } 
} 
+0

.NET Framework/Monoターゲットまたは.NETコア? Monoの場合は、dockerイメージがmono 4.6のイメージに基づいていることを確認してください。 – Tseng

+0

私は、.NETコアを使用していると思われるMicrosoft/dotnetコアイメージを使用しています –

+0

参照用にproject.jsonを追加しました –

答えて

0

Iあなたが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

+0

パッケージのバージョンはどの.netバージョンですか?私はMacでVisual Studioコードを使用しています –

+0

あなたは1.0.0-rc-final LOLを持っています。 1.1.0をターゲットにしたい場合:すべてのパッケージを依存関係(Microsoft.NetCore.Appを含む)に移動しますが、ブラウザのリンクを1.1.0-プレビューに移動します。ブラウザのリンクは、14.1.0-preview1-finalです。ターゲットnetcoreapp1.1。ツールのパッケージは、1.0.0-preview3-finalでなければなりません。一般的には、すべてのバージョンがインラインであるメジャー/マイナーリリースがあると思います。パッチリリースについては、パッチのバージョンによってパッケージが異なる場合があります。 – Pawel

+0

申し訳ありませんが、例えば1.0.0-rc-finalはproject.jsonで参照されていません。 –

関連する問題