Hi! I have a strange problem and i can't find a solution for it.
I have created a service for SOAP access. Configured with NavUserPassword and SSL.
In a web browser i type in the soap address
https://nav.url.com:1111/NAVService/WS/Services. Enter username and Webservice key and login.
It shows all available endpoints. Works like a charm. Then i press F5 or reload the page or go to a codeunit or another endpoint and i get an HTTP 500 internal error. If i wait for a minute or so it works again. So the error is intermittent but it fails every time that i reload the page. The problem happens in different web browsers and from different computers.
If i change to authentication type Windows or Username it works fine all the time.
In Event viewer i get the following error 216 :
Server instance: NAVinstance
Tenant ID:
User:
Type: System.ObjectDisposedException
Message: Message is closed.
StackTrace:
at System.ServiceModel.Channels.ContentOnlyMessage.get_Properties()
at Microsoft.Dynamics.Nav.Service.WebServiceAuthorizationManager.CheckAccessCore(OperationContext operationContext)
Source: System.ServiceModel
HResult: -2146232798
StackTrace:
at System.ServiceModel.Channels.ContentOnlyMessage.get_Properties()
at Microsoft.Dynamics.Nav.Service.WebServiceAuthorizationManager.CheckAccessCore(OperationContext operationContext)
Has anyone come across this problem or a clue on what the issue could be?
Answers
Sounds like a platform bug.
Which NAV Version/CU are you using? Did you check if theres a new CU that might fix this for you?
/Wisa
//Seb.
Apparently this is a Business Central version 14 (Spring release) platform bug which is present in all current cumulative updates. Microsoft have been able to reproduce it and they "will" be working on a fix. We should all escalate the issue with Microsoft pressure them as much as possible so that they fix it asap.
There is a ticket filed with ID 119100322001086 named "Repetitive SOAP requests return HTTP 500 error on NavUserPassword instances"
Thanks
331297
An error is displayed in SOAP calls on 1 Core CPU virtual machines (VMs).
Type: System.ObjectDisposedException
Message: Message is closed.
StackTrace:
at System.ServiceModel.Channels.BufferedMessage.get_Headers()
at Microsoft.Dynamics.Nav.Diagnostic.ServiceCallCorrelationProvider.GetCorrelationId[T](CorrelationIdType type)
at Microsoft.Dynamics.Nav.Runtime.NavCurrentThread.get_GatewayCorrelationId()
at Microsoft.Dynamics.Nav.Service.SOAP.ServiceDiagnosticState..ctor()
at Microsoft.Dynamics.Nav.Service.SOAP.ServiceDiagnosticState..ctor(OperationContext context)
at Microsoft.Dynamics.Nav.Service.SOAP.NavWebService.ProcessMessage(Message message)
at SyncInvokeProcessMessage(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)
Source: System.ServiceModel
HResult: -2146232798
StackTrace:
at System.ServiceModel.Channels.BufferedMessage.get_Headers()
at Microsoft.Dynamics.Nav.Diagnostic.ServiceCallCorrelationProvider.GetCorrelationId[T](CorrelationIdType type)
at Microsoft.Dynamics.Nav.Runtime.NavCurrentThread.get_GatewayCorrelationId()
at Microsoft.Dynamics.Nav.Service.SOAP.ServiceDiagnosticState..ctor()
at Microsoft.Dynamics.Nav.Service.SOAP.ServiceDiagnosticState..ctor(OperationContext context)
at Microsoft.Dynamics.Nav.Service.SOAP.NavWebService.ProcessMessage(Message message)
at SyncInvokeProcessMessage(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)