mam .net App poproszono zmodyfikować, wykorzystuje .NET Framework 2.0Oracle ODBC Błąd
mam skonfigurować połączenie ODBC DSN ze szczegółami połączeń dla naszego Oracle DB na moim komputerze lokalnym, przetestował połączenie i działa dobrze.
Teraz uruchomiłem moją aplikację, poszło bez problemu i skończyłem, sprawdziłem nasz dziennik błędów i znaleźliśmy kilka błędów niezwiązanych z tym problemem, ale ten błąd się nie pojawił.
Więc uruchomiłem aplikację ponownie z punktami przerw w celu uzyskania tych błędów. Tym razem uderzył z poniższym błędem
ERROR [IM004] [Microsoft] [ODBC Driver Manager] kierowcy SQLAllocHandle na SQL_HANDLE_ENV udało
co teraz robi mi na to, że po prostu zabrakło dobrze, nawet 10 minut temu i dodałem tylko punkt przełomowy.
Znalazłem kilka odpowiedzi i oddałem je wszystkie.
- ustawić odczytu/Wykonaj folder sterownika Oracle, niż na zresetować uprawnienia i nie ma różnicy
- Sprawdziłem „ścieżka” zmiennej środowiskowej i to jest w porządku
- Korzystanie z ODBC Administrator Przetestowałem połączenie bez błędu.
- Zweryfikowany ciąg połączenia wskazujący na DSN jest nadal poprawny 5. Pozycja nr
- Zweryfikowana moja aplikacja jest skonfigurowana do uruchamiania 32-bitowego, ponieważ sterownik ma 32-bitowy.
Jedyne, czego nie zrobiłem, to zapisać, zamknąć ponownie komputer i spróbować ponownie. Co zrobię zaraz po tym wpisie, jeśli to zadziała, opublikuję to.
W każdym razie, jeśli ktoś ma pojęcie, co może spowodować takie zachowanie, byłbym bardzo wdzięczny.
Komputer Win7, .NET Framework 2.0 jest, to VB.net, Oracle 10g jest sterownik (10,2)
Aktualizacja: porządku użyłem Administrator ODBC DSN i wyjąć go odbudować. Uruchomiłem moją aplikację i działało.
Powróciłem później, po wprowadzeniu zmian i ponownie uruchomiłem aplikację i ponownie otrzymałem błąd. próbował odbudować DSN i to nie pomogło, próbowałem uruchomić ponownie i to nie pomogło.
Poniżej znajduje się ślad stosu.
StackTrace:
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
Czy prawidłowo pozbywasz się swoich połączeń? –
Sprawdziłem to, myślałem, że może nie być, ale wygląda na to, że nie mogę znaleźć niczego, co jest otwarte, a które nie zostanie zamknięte. – sarchbold
Czy możesz spróbować stworzyć bardzo prosty program za pomocą połączeń ODBC z czystą kością i sprawdzić, czy to działa? Firma Microsoft miała również aplikację ODBCTest, która umożliwia bezpośrednie wywoływanie funkcji API w celu testowania niskiego poziomu. Sprawdź, czy możesz go znaleźć i wypróbować. Czy próbowałeś włączyć śledzenie ODBC z panelu administracyjnego ODBC i zobaczyć, co się loguje? – OldProgrammer