The user can't load the Software Portal. Error: Value should be shorter than 256 chars
search cancel

The user can't load the Software Portal. Error: Value should be shorter than 256 chars

book

Article ID: 379317

calendar_today

Updated On:

Products

IT Management Suite

Issue/Introduction

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.DLL
Priority: 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 chars
Parameter 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.dll
Priority: 1, Source: ResourceKey.ValidateValue

 

 

Environment

ITMS 8.7.x

Cause

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

Resolution

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.