New problem with 7.2.77 that did not exist in prior versions
Posted: Wed 19 Sep 2012 17:43
I just upgraded from 7.1.58 to 7.2.77 and have used many, many prior versions of DevArt. We are seeing a new problem with 7.2.77 that we've never seen before. When we try to connect to the database from a windows service running under the local NetworkService account with this connection string:
"User Id=lookup_data_service;Password=dontyouwish;Server=DATABET2;Pooling=False;"
the service fails on startup with this message in the EventLog:
"Service cannot be started. System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: An error occurred while executing the command definition. See the inner exception for details. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.Data.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ----> System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)
at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly)
at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId)
at System.Diagnostics.Process.get_MainModule()
at Devart.Common.Entity.bx.a()
at Devart.Common.Entity.bx.b()
at Devart.Data.Oracle.Entity.an.o()
at Devart.Data.Oracle.Entity.w.a(CommandBehavior A_0)
at Devart.Data.Oracle.Ent...
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
I can solve the problem by running any prior version of DevArt (7.1.58, or several of the 6.* releases), but it fails consistently with 7.2.77 when the ONLY change we are making to the service is which version of DevArt we are referencing. I can also solve the problem by changing the windows service to run under a domain account that has a corresponding account mapped in the Oracle database. However, with the connection string specified as above, I shouldn't have to use any specific account at all since the username and password are supplied in the connection string. After successfully connecting when the service is running under a domain account that maps to the Oracle database, if I change it back to run under the NetworkService account it fails again.
We have a couple of other Windows services connecting to this same database using connection strings like this:
"User Id=;Password=;Server=CAMSBET2;Pooling=False;"
Those services that pass along the authenticated user credentials (instead of an explicit username and password) still work correctly, just like they always have. It seems to only be a problem with the connection string that specifies the username and password running under an local account that doesn't map to an account in the Oracle database, even though we have been using this exact configuration for several users with many prior versions of DevArt.
This is impacting our production environment and is causing a great deal of trouble for us.
"User Id=lookup_data_service;Password=dontyouwish;Server=DATABET2;Pooling=False;"
the service fails on startup with this message in the EventLog:
"Service cannot be started. System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: An error occurred while executing the command definition. See the inner exception for details. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.Data.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ----> System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)
at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly)
at System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId)
at System.Diagnostics.Process.get_MainModule()
at Devart.Common.Entity.bx.a()
at Devart.Common.Entity.bx.b()
at Devart.Data.Oracle.Entity.an.o()
at Devart.Data.Oracle.Entity.w.a(CommandBehavior A_0)
at Devart.Data.Oracle.Ent...
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp."
I can solve the problem by running any prior version of DevArt (7.1.58, or several of the 6.* releases), but it fails consistently with 7.2.77 when the ONLY change we are making to the service is which version of DevArt we are referencing. I can also solve the problem by changing the windows service to run under a domain account that has a corresponding account mapped in the Oracle database. However, with the connection string specified as above, I shouldn't have to use any specific account at all since the username and password are supplied in the connection string. After successfully connecting when the service is running under a domain account that maps to the Oracle database, if I change it back to run under the NetworkService account it fails again.
We have a couple of other Windows services connecting to this same database using connection strings like this:
"User Id=;Password=;Server=CAMSBET2;Pooling=False;"
Those services that pass along the authenticated user credentials (instead of an explicit username and password) still work correctly, just like they always have. It seems to only be a problem with the connection string that specifies the username and password running under an local account that doesn't map to an account in the Oracle database, even though we have been using this exact configuration for several users with many prior versions of DevArt.
This is impacting our production environment and is causing a great deal of trouble for us.