2016-04-21 5 views
0

Я бегу Dotnet CLI версии 1.0.0-rc2-002439 на CentOS 7.1MissingMethodException на связь с Npgsql + Dotnet CLI на CentOS 7.1

Я построил приложение прототип консоли, который просто выполняет отборное против База данных PostgreSQL 9.4.

Я ориентируюсь только на DNXCORE50 и на окна, все работает отлично. Когда я бегу это на CentOS я получаю следующее исключение на conn.Open()

Unhandled Exception: System.MissingMethodException: Method not found: 'Void System.Net.Security.SslStream.AuthenticateAsClient(System.String, System.Security.Cryptography.X509Certificates.X509CertificateCollection, System.Security.Authentication.SslProtocols, Boolean)'. 
at Npgsql.NpgsqlConnector.RawOpen(NpgsqlTimeout timeout) 
at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout) 
at Npgsql.NpgsqlConnector.Open() 
at Npgsql.NpgsqlConnectorPool.GetPooledConnector(NpgsqlConnection Connection) 
at Npgsql.NpgsqlConnectorPool.RequestConnector(NpgsqlConnection connection) 
at Npgsql.NpgsqlConnection.OpenInternal(NpgsqlTimeout timeout) 
at Npgsql.NpgsqlConnection.Open() 
at SensorBot.Core.Services.ConfigService.GetConfig() 
at ConsoleApplication.Program.Main(String[] args) 

Вот project.json я использую:

{ 
    "version": "1.0.0-*", 
    "compilationOptions": { 
    "emitEntryPoint": false 
    }, 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0-rc2-23811" 
    }, 
    }, 
    "runtimes": { "centos.7-x64": { } }, 
    "frameworks": { 
    "dnxcore50": { 
     "dependencies": { 
     "Microsoft.CSharp": "4.0.1-beta-23516", 
     "System.Collections": "4.0.11-beta-23516", 
     "System.Console": "4.0.0-beta-23516", 
     "System.Linq": "4.0.1-beta-23516", 
     "System.Threading": "4.0.11-beta-23516", 
     "System.IO": "4.1.0-*", 
     "System.IO.FileSystem": "4.0.1-rc2-23811", 
     "System.Runtime.Serialization.Primitives": "4.1.1-*", 
     "System.Dynamic.Runtime": "4.0.11-*", 
     "System.Net.Security": "4.0.0-beta-23405", 
     "System.Net.NetworkInformation": "4.1.0-beta-23405", 
     "System.Text.RegularExpressions": "4.0.12-rc2-23811", 
     "Npgsql": "3.1.0-alpha6" 
     } 
    } 
    } 
} 

Я видел на Github в npgsql, что с помощью https://www.myget.org/gallery/npgsql-unstable как источник пакета и использование нестабильной версии Npgsql исправляет его, но когда я использую "Npgsql": "3.1.0-unstable0458", приложение не компилируется и говорит, что эта версия npgsql несовместима с DNXCore 5.0.

Должно быть что-то, что я делаю неправильно, потому что у других людей, похоже, нет проблем с этим.

Любые идеи?

ответ

0

У меня было такое же исключение с npgsql версии 3.1.0-alpha6

Unhandled Exception: System.MissingMethodException: Method not found: 'Void System.Net.Security.SslStream.AuthenticateAsClient(System.String, System.Security.Cryptography.X509Certificates.X509CertificateCollection, System.Security.Authentication.SslProtocols, Boolean)'.

Однако мне удалось добиться успеха с обеих версий: 3.1.0-unstable0458 и 3.1.0 -unstable0478.
В настоящее время я использую Centos 7.2, Dotnet CLI версия 1.0.0-rc2-002510. В качестве тестового приложения я создал простое консольное приложение с одним выбором для postgresql.
project.json выглядит следующим образом:

{ 
    "version": "1.0.0-*", 
    "compilationOptions": { 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0-rc2-23811" 
    }, 
    "Npgsql": "3.1.0-unstable0478" 
    }, 
"frameworks": { 
    "netcoreapp1.0": { 
     "imports": "dnxcore50", 
    } 
    } 
} 

Поскольку я использую соединение SSL к БД мне пришлось добавить несколько вариантов моей строки подключения: SSL Mode = Требовать; Целевой сертификат сервера = True; использование SSL Stream = True.

Возможно, вам стоит попробовать использовать более новую версию dotnet cli. Если у вас есть вопросы о моей среде os/dotnet, пожалуйста, дайте мне знать.

 Смежные вопросы

  • Нет связанных вопросов^_^