dotnet mvc 응용 프로그램의 Oracle 데이터베이스에 연결
오라클은 닷넷 코어 2용 베타 버전 드라이버 ODP(마침내!)를 출시했습니다.하지만 난 그것을 할 수 없어요.누가 그랬어요?만약 그렇다면, 코드를 보내주시거나 이것을 고치는 것을 도와주세요 \o
유용: Visual Code, 프로젝트 "dotnet new mvc"(.net 2)를 사용하고 있으며 설치했습니다.Oracle.ManagedDataAccess.ClientNuget Add Package 기능(CTRL + P, ...)을 통해 내 코드:
public static OracleConnection AbrirSigmaUser(AutenticacaoModel autenticacao)
{
try
{
string _connectionString;
_connectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.15)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=databaseName)));User Id=UserName;Password=***;";
OracleConnection conexao = new OracleConnection();
conexao.ConnectionString = _connectionString;
//right here the program exit
conexao.Open();
return conexao;
}
catch (System.Exception ex)
{
throw new Exception("Não foi possível conectar ao banco de dados!" + "\nErro: " + ex.Message);
}
}
컴파일러가 dll 누락에 대해 많은 예외를 던지고 있었기 때문에 Nuget Add Package 기능을 통해 설치했습니다.
//required for connection
using Oracle.ManagedDataAccess.Client;
using System.Configuration;
using System.Security.Permissions;
using System.Security.Principal;
요청한 dll을 모두 추가한 후 프로그램은 코넥사오로 이동합니다.()를 열고 처리되지 않은 예외를 던지며 다시는 돌아오지 않습니다.
Unhandled Exception: System.TypeLoadException: Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
at OracleInternal.ConnectionPool.PoolManager`3.CreateNewPRThreadFunc(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
The program '[8860] Sensatta-Analytcs.dll' has exited with code 0 (0x0).
이 모든 것이 정말로 간단한 연결을 만드는 데 필요합니까?
내 문제를 파악하기 위해 누락된 것(예: 코드 샘플)이 있으면 말해주세요!
저에게 있어 해결책은 다음과 같은 것을 설치하는 것이었습니다.Oracle.ManagedDataAccess.CoreNuGet 패키지만 해당.나는 가지고 있었습니다Oracle.ManagedDataAccess오류를 수정하기 위해 제거해야 했습니다.
@Lesiak가 말했듯이, 나는 잘못된 패키지를 사용했습니다(오른쪽은Oracle.ManagedDataAccess.Core.dll하지만 그것은 다른 사람도 빠질 수 있는 오류입니다.왜냐하면 오라클 링크에서 zip 파일을 다운로드할 때 dll 이름은Oracle.ManagedDataAccess.dll대신에Oracle.ManagedDataAccess.Core.dll그것은 오류가 발생하기 쉽습니다.
Oracle을 설치합니다.관리 데이터 액세스.프로젝트의 핵심 너겟 패키지입니다.
아래 코드가 .csproj 파일에 포함되어 있는지 확인합니다.
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="3.21.1" />
또한 "Oracle"을 제거합니다.프로젝트에서 "관리되는 데이터 액세스"를 선택합니다.
아래 코드가 .csproj 파일에서 제거되었는지 확인합니다.
<PackageReference Include="Oracle.ManagedDataAccess" Version="19.10.1" />
저는 이전 버전의 Oracle을 저장하는 작업을 합니다.관리 데이터 액세스.코어, 마지막 버전에 문제가 있습니다.
언급URL : https://stackoverflow.com/questions/49159199/connect-to-oracle-database-in-dotnet-mvc-application
'programing' 카테고리의 다른 글
| Python에서 텍스트 파일의 특정 행 편집 (0) | 2023.08.28 |
|---|---|
| MySQL, SQL 오류(1305) 프로시저가 존재하지 않습니다. (0) | 2023.08.28 |
| 파이썬, Enum 유형은 무엇에 유용합니까? (0) | 2023.08.28 |
| 데이터베이스 커서가 기본 데이터에 대한 변경 사항을 픽업합니까? (0) | 2023.08.28 |
| Mysql 목록 표 및 크기 - 크기순 정렬 (0) | 2023.08.28 |