Options

NAV2017 Web Client connection to NAV Server not work if trying to use Web client from other server

MauritsioMauritsio Member Posts: 27
Hi,

About NAV2017 Web client functionality:

- I've installed NAV Server instance on server A where is also SQL Server.
- Web server components are installed on web server B.
- I have followed installation instructions from https://msdn.microsoft.com/en-us/library/jj551783(v=nav.90).aspx
- For instance, delegation is setup.

NAV 2017 web client is working from web server B but if I'll try to use web client from server A, I'll get message to browser: "A server error has occured and the content cannot be displayed. Refresh the page or open a new browser window."

Any idea, what might be a case in here?

Thanks in advance!

Here's an event log from web server B:

Error accessing Website Microsoft Dynamics NAV 2017 Web Client
Raw Url: /NAV_TEST/WebClient/list.aspx?spa=1&dc=0&inapp=false
Url: http://10.10.100.1:8080/NAV_TEST/WebClient/list.aspx?spa=1&dc=0&inapp=false
Type: Microsoft.Dynamics.Nav.Types.NavServerNotFoundException
Message: A server was not found at "net.tcp://testsql:7046/NAV_TEST/Service". Either the URL is incorrect or the server is currently not available.
StackTrace:
at Microsoft.Dynamics.Nav.Client.ConnectionEstablisher.ConfirmOpenConnectionRetry(ConnectFailedEventArgs connectFailedArgs, Exception exception)
at Microsoft.Dynamics.Nav.Client.ConnectionEstablisher.OpenConnection[TChannel](ConnectFailedEventArgs connectFailedArgs, ConnectionRequest connectionRequest, ConnectionOptions connectionOptions, SpnSetting spnSettingToTry, Boolean allowSpnSettingsSwap, UserSettings& userSettings)
at Microsoft.Dynamics.Nav.Client.ConnectionEstablisher.OpenConnection[TChannel](ConnectionRequest connectionRequest, ConnectionOptions connectionOptions, UserSettings& userSettings)
at Microsoft.Dynamics.Nav.Client.ServiceConnection.OpenConnection()
at Microsoft.Dynamics.Nav.Client.ServiceConnection.Initialize()
at Microsoft.Dynamics.Nav.Client.FormBuilder.BuilderSessionInitializer.OpenConnectionToServer()
at Microsoft.Dynamics.Nav.Client.FormBuilder.BuilderSessionInitializer.InitializeCore()
at Microsoft.Dynamics.Nav.Client.FormBuilder.BuilderSessionInitializer.Initialize()
at Microsoft.Dynamics.Framework.UI.UISession.Initialize()
at Microsoft.Dynamics.Nav.Client.Web.NavWebUISessionInitializer.InitializeCore(UISession session)
at Microsoft.Dynamics.Nav.WebClient.NavWebClientUISessionInitializer.InitializeCore(UISession session)
at Microsoft.Dynamics.Nav.Client.Web.NavWebUISessionInitializer.Initialize(UISession session)
at Microsoft.Dynamics.Framework.UI.Web.ShownFormTrackingUISessionInitializer.InitializeSessionAndTrackShownInitializationForms(UISession session)
at Microsoft.Dynamics.Framework.UI.Web.ShownFormTrackingUISessionInitializer.Initialize(UISession session)
at Microsoft.Dynamics.Framework.UI.Web.LogicalFormInitializer.InitializeSession(FormPropertyBag formBeingInitialized, ClientSession clientSession)
at Microsoft.Dynamics.Framework.UI.Web.LogicalFormInitializer.<>c__DisplayClass9_0.<Create>b__0()
at Microsoft.Dynamics.Framework.UI.LogicalOperationInvoker.InvokeAndHandleExceptions(Func`1 action, IExceptionHandler exceptionHandler)
Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
Type: System.IO.IOException
Message: The read operation failed, see inner exception.
StackTrace:
at System.Net.Security.NegotiateStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.StreamConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
Source: System
Type: System.ServiceModel.CommunicationException
Message: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '00:00:09.9350000'.
StackTrace:
at System.ServiceModel.Channels.SocketConnection.ReadCore(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, Boolean closing)
at System.ServiceModel.Channels.SocketConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.DelegatingConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.NegotiateStream.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
Source: System.ServiceModel
Type: System.Net.Sockets.SocketException
Message: An existing connection was forcibly closed by the remote host
StackTrace:
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.ServiceModel.Channels.SocketConnection.ReadCore(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, Boolean closing)
Source: System

Best Answer

  • Options
    MauritsioMauritsio Member Posts: 27
    Answer ✓
    IP address problem solved -> Disabled "Use Kerberos only" option from Delegation setup.

Answers

  • Options
    MauritsioMauritsio Member Posts: 27
    I noticed that I accidentially setup delegation from server A and not from server B. Now, I changed that and can access to db from both servers by using server name in web client url. But if I use ip address in URL then I'll get the same message as described in my previous comment -> I'll get message to browser: "A server error has occured and the content cannot be displayed. Refresh the page or open a new browser window."
  • Options
    MauritsioMauritsio Member Posts: 27
    Answer ✓
    IP address problem solved -> Disabled "Use Kerberos only" option from Delegation setup.
  • Options
    Slawek_GuzekSlawek_Guzek Member Posts: 1,690
    Hi,

    If you had to disable "Use Kerberos Only" to make it work it means that you have not setup accounts delegation and impersonation correctly.

    Slawek
    Slawek Guzek
    Dynamics NAV, MS SQL Server, Wherescape RED;
    PRINCE2 Practitioner - License GR657010572SG
    GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-03
  • Options
    MauritsioMauritsio Member Posts: 27
    Hi Slawek,

    Thanks for your message.

    I followed delegation instructions from https://msdn.microsoft.com/en-us/library/jj551742(v=nav.90).aspx#Delegate and when I had "Use Kerberos Only" option enabled, I could only then access database with web client with url having server name defined in url (not with IP).

    Pls comment if you have some hints what could be worth to check in setup.
  • Options
    dashidashi Member Posts: 2
    Hey, I'm facing same issue but on 3/3 installation. I can only connect to webclient from IIS server, Nav client is working from the 3 servers.... Any Idea? (I followed the same instructions...)
    Thanks!
Sign In or Register to comment.