ADMIN: Not an API Question, therefore moved to Tech forums...
Hi Guys, i'm getting this error after upgrading from 8.4 to 8.5 at a customer site, for some users when they try to access Service. S&M is working just fine.
The following message is logged in Service' log folder:
ticket8.5.0000.0: NetServerException (NetServer exception: Service call User.SaveUser failed with exception
User.SaveUser
Sentry denies Write access:
) in :-1
And here's the netserver log:
Level: Error
At: 09:12:55
Element:
Message: Service call User.SaveUser failed with exception
User.SaveUser
Type: SuperOffice.Exceptions.SoException
Details:
at SuperOffice.CRM.Services.Implementation.UserAgentLocal.SaveUser(User user)
at SuperOffice.Services88.UserAgent.SaveUser(User user)
at SuperOffice.Services88.WcfService.WcfUserService.<>c__DisplayClass8_0.<SaveUser>b__0(UserAgent agent, SaveUserResponse response)
at SuperOffice.Services88.WcfService.SoWcfService`1.Execute[TRequest,TResponse](String methodName, TRequest request, OnExecute`1 execute)
Inner Element:
Message: Sentry denies Write access:
Type: SuperOffice.Exceptions.SoSentryException
Details:
at SuperOffice.CRM.Security.FieldRight.DemandRight(EFieldRight right)
at SuperOffice.CRM.Entities.Person.set_Country(CountryRow value)
at SuperOffice.CRM.Services.Implementation.UserConversionHelper.UpdateFromUser(SoUser soUser, User user, Dictionary`2 validator)
at SuperOffice.CRM.Services.Implementation.BL.UserImplementation.GetSoUser(User user, Dictionary`2 validator)
at SuperOffice.CRM.Services.Implementation.BL.UserImplementation.Save(User user)
at SuperOffice.CRM.Services.Implementation.UserAgentLocal.SaveUser(User user)
Environment info:
SingleThreadMode: False
Database type: MSSQL - 11
Database: \\\
SerialNumber: HIDDEN
Version: SuperOffice 8.5 R15 NetServer 8.5 Release (Build: Release85_C-2020.10.12-01)
Version.Assembly: 8.5.0.0
Version.File: 8.5.7590.1002
Version.BuildLabel: Release85_C-2020.10.12-01
ContextIdentifier: Default
MachineName: HIDDEN
StackTrace: at SuperOffice.Diagnostics.SoLogger.LogError(Exception ex)
at SuperOffice.Services88.WcfService.SoWcfService`1.Execute[TRequest,TResponse](String methodName, TRequest request, OnExecute`1 execute)
at SuperOffice.Services88.WcfService.WcfUserService.SaveUser(SaveUserRequest request)
at SyncInvokeSaveUser(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item)
at System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread)
at System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
at System.ServiceModel.Channels.SingletonChannelAcceptor`3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.CompleteParseAndEnqueue(IAsyncResult result)
at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.HandleParseIncomingMessage(IAsyncResult result)
at System.Runtime.AsyncResult.SyncContinue(IAsyncResult result)
at System.ServiceModel.Channels.HttpPipeline.EmptyHttpPipeline.BeginProcessInboundRequest(ReplyChannelAcceptor replyChannelAcceptor, Action dequeuedCallback, AsyncCallback callback, Object state)
at System.ServiceModel.Channels.HttpChannelListener`1.HttpContextReceivedAsyncResult`1.ProcessHttpContextAsync()
at System.ServiceModel.Channels.HttpChannelListener`1.BeginHttpContextReceived(HttpRequestContext context, Action acceptorCallback, AsyncCallback callback, Object state)
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
The customer is using custom user roles, and we found a workaround that seems to work everytime, and one that works most of the time:
1. Assign admin role to the user temporary, log in to SO and thereafter Service - Service loads just fine. Revert the role back to the original role, and Service still works fine.
2. Ask the user to set the locale locally on the client via the local settings menu. This usually works, but with some users it doesn't.
So in short, the problem seems to be isolated to user role permissions, and or / the locale of the user. But since it does not tell me which permission it needs, it's pretty hard to correct for it.
Heres the configuration for the user role that has the problem:


Any help would be greatly appreciated.