I'm using
- ASP.NET, C#, .NET 4.5.2
- Oracle.ManagedDataAccess
- Oracle.ManagedDataAccess.EntityFramework
- Oracle.DataAccess
- Server running Windows Server 2008 SP2.
My website uses Oracle.DataAccess in most parts (e.g. login, search data). I'm migrating some parts to Oracle.ManagedDataAccess (e.g. insert Permit data). The website work perfectly in both my computer and server. However, when it works about 3-4 days it will show error ORA-12154 from Oracle.ManagedDataAccess parts but Oracle.DataAccess parts still work correctly. I can login or search data but I can't insert Permit data.
My current solution is recycling Application Pool every 3-4 days and it will work again. Please suggest me. Thank you.
Here is some of exception.
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> Oracle.ManagedDataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified ---> OracleInternal.Network.NetworkException: ORA-12154: TNS:could not resolve the connect identifier specified
at OracleInternal.Network.AddressResolution..ctor(String TNSAlias, String instanceName)
at OracleInternal.Network.OracleCommunication.DoConnect(String tnsDescriptor)
at OracleInternal.Network.OracleCommunication.Connect(String tnsDescriptor, Boolean doNAHandshake, String IName)
at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs, Boolean bOpenEndUserSession, CriteriaCtx criteriaCtx, String instanceName)
--- End of inner exception stack trace ---
at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, CriteriaCtx criteriaCtx, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, CriteriaCtx criteriaCtx, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, CriteriaCtx criteriaCtx)
at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<Open>b__36(DbConnection t, DbConnectionInterceptionContext c)
Related
I have a simple application that fetches entries from a few databases and then uses selenium to open a chrome window and paste information in a form. This agent runs once every five minutes.
I've looked through the logs and this error comes up now and then.
When trying to find information about this problem the only "fixes" I can find is related to firewalls blocking ports or other issues that should be "persistent" like DB's not existing anymore / changed names or credentials.
The problem with my situation is that this error only happen on once or twice on some days, other days it never happens.
If this was a problem with ports / DB names I would think this error should happen every time the agent runs.
The agent runs 288 times a day, and like I mentioned, this only happens very few times in regards to the total runs of the agent.
I've come across an answer that suggests that this could be related to network issues on the host for the agent.
I would appreciate any ideas of what could cause this issue.
System.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The specified network name is no longer available.) ---> System.ComponentModel.Win32Exception (0x80004005): The specified network name is no longer available
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling, SqlAuthenticationProviderManager sqlAuthProviderManager)
at …
I think the reason can be found here
" the application is taking the assumption that the SQL connection is always available (no check or test before running commands) so when the line goes down or anything makes the connection drop/close the application produces that message.
To reproduce, simply kill the SQL session on the SQL server and you will get that very same a similar message."
Fix would be to add a check to make sure the connection can be made and add a retry / delay + retry
I've made a website and uploaded it to my hosting-server (some smalltime hosting provider). It runs great but there is a problem with the Session; It keeps logging out my user.
It happens on complete random, so I phoned the provider to ask what kind of server my website is hosted in. They told me it was a shared hosting IIS farm. So what is happening is that the loadbalancer is re-routing my session to another server, so my session is lost and I get a login screen.
To solve this I need to use a Session State Service or SQL Session State database.
The provider said there is no way to run a dedicated Session State Service in the server-farm, so that leaves me with the SQL Session State database option.
For this I need to run the "aspnet_regsql" tool on my SQL Server, but when I do this I get this error:
Microsoft (R) ASP.NET SQL Registration Tool version 4.0.30319.33440
Administrative utility to install and uninstall ASP.NET features on a SQL server.
Copyright (C) Microsoft Corporation. All rights reserved.
Start adding session state.
.
An error occurred during the execution of the SQL file 'InstallSqlState.sql'. The SQL error number is 262 and the SqlException message is: CREATE DATABASE permission denied in database 'master'.
SQL Server: ................
Database: aspnetdb
SQL file loaded:
InstallSqlState.sql
Commands failed:
/* Create and populate the session state database */
IF DB_ID(N'ASPState') IS NULL BEGIN
DECLARE #cmd nvarchar(500)
SET #cmd = N'CREATE DATABASE [ASPState]'
EXEC(#cmd)
END
SQL Exception:
System.Data.SqlClient.SqlException (0x80131904): CREATE DATABASE permission denied in database 'master'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at System.Web.Management.SqlServices.ExecuteFile(String file, String server, String database, String dbFileName, SqlConnection connection, Boolean sessionState, Boolean isInstall, SessionStateType sessionStatetype)
ClientConnectionId:............................................
Error Number:262,State:1,Class:14
So I don't have permissions to create my own database, so there is no way to create the Dedicated "ASPState" database.
Can anyone help? Is there a way to maybe install the SessionState service on the database that is assigned to my account, instat of a dedicated ASPState database?
Use aspnet_regsql command line utility then specify connection string and database name to create tables if db name exists in server it does not create database and will create tables
[Msdn link] https://msdn.microsoft.com/en-us/library/ms229862.aspx
For example command line:
aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated Security=True;" -d yourbusinessdbname
I am using Visual Studio 2013 Update 4, I have an ASP.NET MVC Web Application which is using Entity Framework 6.1.1.
When I try to run my web application, it fails to load with an error.
In the console I get the same error repetitively:
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
In the web browser I get this error:
Server Error in '/' Application.
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
SQLExpress database file auto-creation error:
The connection string specifies a local Sql Server Express instance using a database location within the application's App_Data directory. The provider attempted to automatically create the application services database because the provider determined that the database does not exist. The following configuration requirements are necessary to successfully check for existence of the application services database and automatically create the application services database:
If the application is running on either Windows 7 or Windows Server 2008R2, special configuration steps are necessary to enable automatic creation of the provider database. Additional information is available at: http://go.microsoft.com/fwlink/?LinkId=160102. If the application's App_Data directory does not already exist, the web server account must have read and write access to the application's directory. This is necessary because the web server account will automatically create the App_Data directory if it does not already exist.
If the application's App_Data directory already exists, the web server account only requires read and write access to the application's App_Data directory. This is necessary because the web server account will attempt to verify that the Sql Server Express database already exists within the application's App_Data directory. Revoking read access on the App_Data directory from the web server account will prevent the provider from correctly determining if the Sql Server Express database already exists. This will cause an error when the provider attempts to create a duplicate of an already existing database. Write access is required because the web server account's credentials are used when creating the new database.
Sql Server Express must be installed on the machine.
The process identity for the web server account must have a local user profile. See the readme document for details on how to create a local user profile for both machine and domain accounts.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1900630
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +545
System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +452
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +198
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +923
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +324
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +646
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +459
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +800
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +143
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +141
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +252
System.Data.SqlClient.SqlConnection.Open() +130
System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +75
[HttpException (0x80004005): Unable to connect to SQL Server database.]
System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +125
System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +89
System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +29
System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +386
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.5.27.0
So I tried to connect to the database using SQL Server Management Studio using the connection string taken from the Properties windows in Visual Studio:
Data Source=(LocalDb)\v11.0;AttachDbFilename=C:\Users\Aaron\Desktop\AbcBankSolution\AbcBankWebApplication\App_Data\aspnet-AbcBankWebApplication-20150203085459.mdf;Initial Catalog=aspnet-AbcBankWebApplication-20150203085459;Integrated Security=True
This gives the following error:
The value's length for key 'data source' exceeds it's limit of '128'
Which is odd considering it is only 15 in length...
Finally, in Visual Studio, I can connect and refresh the database in the Server Explorer window, so I really don't know what is going on...
How can I fix this problem?
I tried many different solutions to fix this error. In the end, I discovered that it was the line after where the exception was shown as being thrown which had a problem - not the line where the debugger said it was!
The error looks pretty clear to me, it's unable to find the db in question, is trying to auto-create it in your app, and failing to do so.
Have you tried this part?
If the application is running on either Windows 7 or Windows Server 2008R2, special configuration steps are necessary to enable automatic creation of the provider database. Additional information is available at: http://go.microsoft.com/fwlink/?LinkId=160102.
Also, when you copy and paste your connection string into Management Studio, it's reading the whole string, not just the Data Source portion of the connection string, that's why the length is too long.
The data source length is the entire line length after Data Source=. That is,
Data Source=(LocalDb)\v11.0;AttachDbFilename=C:\Users\Aaron\Desktop\AbcBankSolution\AbcBankWebApplication\App_Data\aspnet-AbcBankWebApplication-20150203085459.mdf;Initial Catalog=aspnet-AbcBankWebApplication-20150203085459;Integrated Security=True
From the start of the line (Data Source=) is 247 characters long. Reducing the length by Data Source= gives us a length of 12 yields 235 characters in length. That far exceeds the max length of 128 character allowed for the property Data Source.
Place your database in a SHORT path, such as C:\DSolution. Cut down its name to something like ABS-2015020308.mdf Remember that all the specifiers such as Initial Catalog= and ;Integrated Security=True count as part of the Data Source property length. See if you even need to specify Initial Catalog.
Remember, you have to make everything from (LocalDB) to ;Integrated Security=True fit in less than 128 characters. So shorten your paths, and shorten your name at a minimum.
I can't comment on the solution of Aalawlx ... but in my case it was the same.
I had a line Membership.GetUser().ProviderUserKey.ToString() where the debugger stopped just before and gave me the SQL Error .... damn, costed me a long long lonnngg time and lots of Google :-)
I have created a windows service which listen to a TCP/IP port and save received data in database using Entity Framework. Most of the time it works fine but some time its throwing an exception "The underlying provider failed on open." on save data in database.
Here is my exception details:
Exception: 2/27/2014 10:31 AM:
The underlying provider failed on Open.
at System.Data.Entity.Core.EntityClient.EntityConnection.Open()
at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__9()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at System.Lazy`1.get_Value()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable`1 sequence)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression)
at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)
at Service.DemoService.Save(String received, TcpClient client)
What is the thing behind this exception and how to resolve it?
Usually, when working with Entity Framework you'll need to enable the multiple active result sets option in your connection string by setting MultipleActiveResultSets to true as follows.
<add name="conn"
connectionString="
Data Source=.\;
Initial Catalog=TDB;
UID=admin123;
PWD=123;
MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
Verify that it solves your problem.
Check whether you SQL Server is running or not.
Just Open Task Manager and Goto Services, Click on Services button below and check whether SQL Server is running or not.
In my case, the issue was that the account which I was using to connect to SQL server was not added to app pool identity. Once I added the account 'domain\username' to app pool, it started working.
Change
integrated security= False ; MultipleActiveResultSets=True
in your connection string , it should be work.
I had this error but I solved it by Opening Task Manager, Go to Services and checking if my SQL Server is running or not. Your Sql server should be running.
Hi i am facing below issue on windows 2008 r2 enterprise edition but it is fine on windows 2008 r2 standard edition.
Problem: .Net windows service called web services. Web services throwing below error..
Error Message:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at Errorlog.LogError(Exception objEx, Int32 userId, String pageURL)
at AuthorizationProcess.LoadProcess(DataSet dsProcessList)
--- End of inner exception stack trace ---
Stack Trace:
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at WebAuthorizationService.WSMediaAuthorizationService.AuthorizationProcess.LoadProcess(DataSet dsProcessList)
at WebAuthorizationService.Revision.LoadProcessForMediaServer()
Somewhere in your code, you are connecting to a sql server and the connection cannot be established.
Either you are pointing to a wrong sql server (a development machine perhaps?) or there is no physical connection between the two, the application server and the sql server.