ALERT: Some images may not load properly within the Knowledge Base Article. If you see a broken image, please right-click and select 'Open image in a new tab'. We apologize for this inconvenience.

Task Management error. SQL connection failed, current user=IIS APPPOOL\SMP Server AppPool

book

Article ID: 172135

calendar_today

Updated On:

Products

Management Platform (Formerly known as Notification Server)

Issue/Introduction

Disabling ASP.NET Impersonation in Authentication setting for TaskManagement application causes IIS user to authenticate with SQL server.

"7/18/2018 2:41:23 AM","[5/5] SQL connection failed, current user=IIS APPPOOL\SMP Server AppPool, total time=00:00:05.0468680

Login failed for user 'DOMAIN\comoutername$'.
   [System.Data.SqlClient.SqlException @ .Net SqlClient Data Provider]
   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)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at Altiris.NS.Utilities.DbUtils.TryCreateConnection(String costring, Int32 retries, Int32 delay, Int32 add)
SQL Exception details: code=18456, line=65536

Exception logged from:
   at Altiris.NS.Utilities.DbUtils.TryCreateConnection(String, Int32, Int32, Int32)
   at Altiris.NS.Utilities.DbUtils.CreateConnection(String, String, String, String)
   at Altiris.NS.Utilities.DbUtils.CreateConnection(String)
   at Altiris.NS.ContextManagement.AdminDatabaseContext.OpenDbConnection()
   at Altiris.Database.DatabaseContext<T>.Initialize(Boolean, System.Data.IsolationLevel)
   at Altiris.Database.DatabaseContext<T>.CreateFirstContext(Altiris.Database.ContextTransactionMode, System.Nullable<System.Data.IsolationLevel>, Altiris.Database.DatabaseContextStack<T>, Boolean)
   at Altiris.Database.DatabaseContext<T>.GetContextImpl(Altiris.Database.ContextTransactionMode, System.Nullable<System.Data.IsolationLevel>, Boolean)
   at Altiris.Database.DatabaseContext<T>.GetContext(Altiris.Database.ContextTransactionMode, System.Nullable<System.Data.IsolationLevel>, Boolean)
   at Altiris.NS.DataAccessLayer.Implementation.Altiris_NS_UI_Controls_DataAccessLayerPersonalizationDataAccessLayer.spUserSettingsGet(String, String)
   at Altiris.NS.UI.Controls.UserSettings.LoadSettings(String, String, String)
   at Altiris.NS.UI.Controls.UserSettings.LoadSettings(String)
   at Altiris.NS.ContextManagement.CultureContext.GetOverrideCultureInfo()
   at Altiris.NS.ContextManagement.CultureContext.GetOverrideCulture()
   at Altiris.NS.ContextManagement.CultureContext.GetContext(String)
   at Altiris.NS.UI.AltirisWebApplication.PerformCultureSetup(System.Web.HttpApplication, String)
   at Altiris.NS.UI.AltirisWebApplication.PerformPreRequestSetup(System.Web.HttpApplication, String, Boolean, Boolean)
   at System.Web.HttpApplication+SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication+IExecutionStep, Boolean&)
   at System.Web.HttpApplication+PipelineStepManager.ResumeSteps(Exception)
   at System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, AsyncCallback)
   at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
   at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)

User [IIS APPPOOL\SMP Server AppPool], Auth [IIS APPPOOL\SMP Server AppPool], AppDomain [/LM/W3SVC/1/ROOT/Altiris/TaskManagement-2-131763301375064339]

HTTP [GET]: http://computername/Altiris/TaskManagement/ClientTask/RegisterTaskServer.aspx?clientTaskServerGuid=37fa4df8-6334-469f-b32b-adcded3ec7e5&resourceGuid=37fa4df8-6334-469f-b32b-adcded3ec7e5&version=8.1&build=5454&httpPort=80
 ip: [172.20.5.211];
 response: [200 OK]; x-smp-nsversion: [8.1.4528.0];
","DbUtils.CreateConnection","Altiris.NS.dll","1180","Errors"

 

Cause

Connection to SQL server must be performed by authorized user. Application configured to automatically impersonate as application identity whenever required.

Disabling ASP.NET Impersonation would cause application to authorize using default IIS user.

Environment

Any

Resolution

Using IIS Manager, find TaskManagement application under Default Web Site\Altiris site and open Authentication settings.

Default settings are:

  • Anonymous Authentication Disabled
  • ASP.NET Impersonation Enabled
  • Basic Authentication Disabled
  • Digest Authentication Disabled
  • Forms Authentication Disabled
  • Windows Authentication Enabled