You have noticed an issue where if a specific User tries to access the Software Portal, it fails:
A problem occurred while loading the Software Portal. Contact IT Helpdesk for assistance.
If a different User tries to open the Software Portal from the same computer, it opens fine.
If the affected User tries from a different computer, fails too.
This is what the Agent logs shows when the affected User is trying to access the Software Portal:
Open Software Portal URL (https://smpserver.example.com/Altiris/SoftwarePortal/UserPortal/default.aspx?MachineGuid={93E227F2-8353-4A1A-9E2A-81F7B0A0F1A0}&MachineName=COMPUTER123&Platform=Win64) in Web browser...-----------------------------------------------------------------------------------------------------Process: rundll32.exe (17848), Thread ID: 16620, Module: SOFTWA~1.DLLPriority: 4, Source: Software Management Plug-in
It shows that the call was properly made and no is related to a failure caused by the Computer.
Here is what the NS logs shows when the Software Portal request is made, which failed:
MainController failure.
Value should be shorter than 256 charsParameter name: value [ArgumentException @ Altiris.NS.dll] at Altiris.NS.ResourceManagement.ResourceKey.ValidateValue(string, string) at Altiris.SoftwarePortal.Resources.PortalUserResource.FindExistingUser(string, string, DirectoryEntry, CodeProfiler) at Altiris.SoftwarePortal.Resources.PortalUserResource.GetPortalUser(string, string, DirectoryEntry) at Altiris.SoftwarePortal.Resources.PortalUserResource.PortalUserResourceFromAccount(UserAccount) at Altiris.SoftwarePortal.Resources.PortalUserResource.GetUser(string) at Altiris.SoftwarePortal.Engine.UserContextCache.CreatePortalUser(string) at Altiris.SoftwarePortal.Engine.UserContextCache.AddUserToCache(string) at Altiris.SoftwarePortal.Engine.UserContextCache.GetPortalUser(string) at Symantec.SoftwarePortal.Api.Helpers.PortalUserHelper+<>c_DisplayClass2_0.<GetCurrentPortalUser>b_0() at Altiris.NS.Security.SecurityContext+<>c_DisplayClass33_0.<ExecuteAsAppIdentity>b_1(SecurityContext) at Altiris.NS.Security.SecurityContext.ExecuteAs<T,TK>(EExecuteAs, TK, Func<TK,SecurityContext>, Func<SecurityContext,T>) at Symantec.SoftwarePortal.Api.Helpers.PortalUserHelper.GetCurrentPortalUser(bool, bool, bool) at Symantec.SoftwarePortal.Api.Controllers.MainController.GetPortalUser() at .lambda_method(Closure, object, object[]) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor+ActionExecutor+<>c_DisplayClass6_2.<GetExecutor>b_2(object, object[]) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext, IDictionary<string,object>, CancellationToken) at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) at System.Web.Http.Controllers.ApiControllerActionInvoker+<InvokeActionAsyncCore>d__1.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) at System.Web.Http.Controllers.ActionFilterResult+<ExecuteAsync>d__5.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) at System.Web.Http.Controllers.ExceptionFilterResult+<ExecuteAsync>d__6.MoveNext()
Exception logged from: at Altiris.Diagnostics.Logging.EventLog.ReportException(int, string, string, Exception, string) at Symantec.SoftwarePortal.Api.Controllers.ApiControllerExceptionHandler.OnException(HttpActionExecutedContext) at System.Web.Http.Filters.ExceptionFilterAttribute.OnExceptionAsync(HttpActionExecutedContext, CancellationToken) at System.Web.Http.Filters.ExceptionFilterAttribute+<ExecuteExceptionFilterAsyncCore>d__3.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine>(ref TStateMachine) at System.Web.Http.Filters.ExceptionFilterAttribute.ExecuteExceptionFilterAsyncCore(HttpActionExecutedContext, CancellationToken) at System.Web.Http.Filters.ExceptionFilterAttribute.System.Web.Http.Filters.IExceptionFilter.ExecuteExceptionFilterAsync(HttpActionExecutedContext, CancellationToken) at System.Web.Http.Controllers.ExceptionFilterResult+<ExecuteAsync>d__6.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<>.Start<TStateMachine>(ref TStateMachine) at System.Web.Http.Controllers.ExceptionFilterResult.ExecuteAsync(CancellationToken) at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext, CancellationToken) at System.Web.Http.Dispatcher.HttpControllerDispatcher+<SendAsync>d__15.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<>.Start<TStateMachine>(ref TStateMachine) at System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage, CancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage, CancellationToken) at System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage, CancellationToken) at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage, CancellationToken) at Symantec.SoftwarePortal.Api.Controllers.Extensions.ApiControllerAntiForgeryHandler.SendAsync(HttpRequestMessage, CancellationToken) at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage, CancellationToken) at System.Web.Http.HttpServer+<SendAsync>d__24.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<>.Start<TStateMachine>(ref TStateMachine) at System.Web.Http.HttpServer.SendAsync(HttpRequestMessage, CancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage, CancellationToken) at System.Web.Http.WebHost.HttpControllerHandler+<ProcessRequestAsyncCore>d__12.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start<TStateMachine>(ref TStateMachine) at System.Web.Http.WebHost.HttpControllerHandler.ProcessRequestAsyncCore(HttpContextBase) at System.Web.TaskAsyncHelper.BeginTask(Func<Task>, AsyncCallback, object) at System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep) at System.Web.HttpApplication.ExecuteStep(IExecutionStep, ref bool) at System.Web.HttpApplication+PipelineStepManager.ResumeSteps(Exception) at System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext, AsyncCallback) at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest, HttpContext) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, int) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, int) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, ref RequestNotificationStatus) at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, ref RequestNotificationStatus) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, int) at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, int)
HTTP [GET]: *https://smpsserver.example.com/altiris/softwareportal/api/portaluser* ip: [172.0.xx.xx]; languages: [es,es-ES;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6]; timings: [[R] 00:00:00.0156275(W: 00:00:00)]; response: [200 OK]; x-smp-nsversion: [8.7.3391.0];-----------------------------------------------------------------------------------------------------Process: w3wp (6232), Thread ID: 1046, Module: Altiris.NS.dllPriority: 1, Source: ResourceKey.ValidateValue
ITMS 8.7.x
Known issue. Unable to handle very long display names and inclusion in deep OU hierarchy tree in AD.
This affected User resided in a very deep OU structure/hierarchy. More than 256 characters OU path:
DistinguishedName : CN=Doe John,OU=Prevented Deletion from Assets,OU=Risk Management and Compliance,OU=Risk Management, Technique and Policy Compliance Management,OU=General Directory,OU=Main Company Groups,DC=example,DC=com
This issue has been resolved. Currently a fix for this has been included in our ITMS 8.7.3 release.
Workaround:
Move the affected User to a shorter OU hierarchy/structure, so it will not exceed 256 characters.