Unable to open NAV 2013 R2 web client

simaaksimaak Member Posts: 7
edited 2015-02-20 in NAV Three Tier
Hi there,

We are having a bit of trouble with our Nav 2013 web client deployment.

We have a 3 server setup, a sql server, a nav server and a web server.

When on the web server we can access the client if we browse via the server name in our browser.
So if I browse to http://it-web:8080/NAV_2013R2_LIVE/WebC ... fault.aspx is works ok, I get the correct landing page.

When on the webserverm, if I browse to the IP of the webserver http://it-web:8080/NAV_2013R2_LIVE/WebC ... fault.aspx or
http://127.0.0.1:8080/NAV_2013R2_LIVE/W ... fault.aspx, I get the error:

'A server error has occurred, and the content cannot be displayed. Refresh the page or open a new browser window.'

If I browse http://localhost:8080/NAV_2013R2_LIVE/W ... fault.aspx it works.

If I browse to the address, either via name or IP from any other server or pc on the network, I also get the error above.

Below is the error I get in the event viewer of the web server.

There is no event logged when we use the web server name in the url locally.
There are no events logged on the Navserver or the sql server.

Any help would be appreciated.


Log Name: Application
Source: MicrosoftDynamicsNAVClientWebClient
Date: 17/02/2015 11:50:58
Event ID: 0
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: IT-WEB.ad.italicatessen.ie
Description:
Error accessing Website Microsoft Dynamics NAV 2013 R2 Web Client
URL: http://127.0.0.1:8080/NAV_2013R2_LIVE/W ... fault.aspx
Type: Microsoft.Dynamics.Nav.Types.NavServerNotFoundException
Message: A server was not found at "net.[url=tcp://it-nav:50000/NAV_2013R2_LIVE/Service]tcp://it-nav:50000/NAV_2013R2_LIVE/Service[/url]". 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(ConnectFailedEventArgs connectFailedArgs, ConnectionRequest connectionRequest, SpnSetting spnSettingToTry, Boolean allowSpnSettingsSwap, UserSettings& userSettings)
at Microsoft.Dynamics.Nav.Client.ConnectionEstablisher.OpenConnection(ConnectionRequest connectionRequest, 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.LogicalFormInitializer.InitializeSession(FormPropertyBag formBeingInitialized, ClientSession clientSession)
at Microsoft.Dynamics.Framework.UI.Web.LogicalFormInitializer.<>c__DisplayClass1.<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 write operation failed, see inner exception.
StackTrace:
at System.Net.Security.NegotiateStream.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.StreamConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, 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.9630000'.
StackTrace:
at System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
at System.ServiceModel.Channels.BufferedConnection.WriteNow(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, BufferManager bufferManager)
at System.ServiceModel.Channels.BufferedConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.NegotiateStream.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ProcessWrite(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.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
Source: System.ServiceModel
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
<System>
<Provider Name="MicrosoftDynamicsNAVClientWebClient" />
<EventID Qualifiers="0">0</EventID>
<Level>2</Level>
<Task>0</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2015-02-17T11:50:58.000000000Z" />
<EventRecordID>1730</EventRecordID>
<Channel>Application</Channel>
<Computer>IT-WEB.ad.italicatessen.ie</Computer>
<Security />
</System>
<EventData>
<Data>Error accessing Website Microsoft Dynamics NAV 2013 R2 Web Client
URL: http://127.0.0.1:8080/NAV_2013R2_LIVE/W ... fault.aspx
Type: Microsoft.Dynamics.Nav.Types.NavServerNotFoundException
Message: A server was not found at "net.[url=tcp://it-nav:50000/NAV_2013R2_LIVE/Service]tcp://it-nav:50000/NAV_2013R2_LIVE/Service[/url]". 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(ConnectFailedEventArgs connectFailedArgs, ConnectionRequest connectionRequest, SpnSetting spnSettingToTry, Boolean allowSpnSettingsSwap, UserSettings& userSettings)
at Microsoft.Dynamics.Nav.Client.ConnectionEstablisher.OpenConnection(ConnectionRequest connectionRequest, 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.LogicalFormInitializer.InitializeSession(FormPropertyBag formBeingInitialized, ClientSession clientSession)
at Microsoft.Dynamics.Framework.UI.Web.LogicalFormInitializer.<>c__DisplayClass1.<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 write operation failed, see inner exception.
StackTrace:
at System.Net.Security.NegotiateStream.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.ServiceModel.Channels.StreamConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, 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.9630000'.
StackTrace:
at System.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
at System.ServiceModel.Channels.BufferedConnection.WriteNow(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, BufferManager bufferManager)
at System.ServiceModel.Channels.BufferedConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.NegotiateStream.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.NegotiateStream.ProcessWrite(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.ServiceModel.Channels.SocketConnection.Write(Byte[] buffer, Int32 offset, Int32 size, Boolean immediate, TimeSpan timeout)
Source: System.ServiceModel</Data>
</EventData>
</Event>

Please help..

Thanks in advance,

Simaak

Comments

  • k0n4nk0n4n Member Posts: 25
    Hi,

    In C:\Inetpub\wwwroot\DynamicsNAV71 you have a file: web.config

    in this file you need config the correct URL and Navision instance, SQL Instance, database...

    Please check this file and tell your configuration.

    Thanks.
  • simaaksimaak Member Posts: 7
    Hi k0n4n,

    Thanks for the response. I looked at the Web.config file and it looks OK. Find below the details:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <configSections>
    <section name="DynamicsNAVSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </configSections>
    <!--This is needed in order to load and register the CSS files, which are also used before the user has a session (i.e. in login page).-->
    <!-- Uncomment to use form based authentication mode with Client Services
    <location path="Services/ClientService.svc">
    <system.web>
    <authorization>
    <allow users="*"/>
    </authorization>
    </system.web>
    </location>
    <location path="cs.DynamicFileHandler.axd">
    <system.web>
    <authorization>
    <allow users="*"/>
    </authorization>
    </system.web>
    </location>
    <location path="cs.img">
    <system.web>
    <authorization>
    <allow users="*"/>
    </authorization>
    </system.web>
    </location>
    -->
    <DynamicsNAVSettings>
    <!-- Specifies whether NTLM fallback is permitted when authenticating. To require Kerberos authentication, set this value to false -->
    <add key="AllowNtlm" value="true"/>
    <!--
    Sets the maximum size, in kilobytes, of a data chunk that is transmitted between Microsoft Dynamics NAV Web client
    and Microsoft Dynamics NAV Server. The value should be between 4 and 80.
    -->
    <add key="ClientServicesChunkSize" value="28"/>
    <!--
    Sets the company in Microsoft Dynamics NAV to connect to.
    -->
    <add key="Company" value=""/>
    <!--
    Sets the threshold in memory consumption at which Microsoft Dynamics NAV Web client starts compressing data sets.
    This limits amount of consumed memory. The value is in kilobytes.
    -->
    <add key="ClientServicesCompressionThreshold" value="64"/>
    <!--
    Sets the time zone for Microsoft Dynamics NAV Web client. The time zone is applied to date and time data.
    The value must match a time zone that is in the registry of the computer running Microsoft Dynamics NAV Web client
    under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones.
    -->
    <add key="TimeZone" value="UTC"/>
    <!--
    Sets the language version of the Microsoft Dynamics NAV Web client. The value must be valid culture name
    for a language in Microsoft Dynamics NAV, such as en-US or da-DK.
    -->
    <add key="Language" value="en-GB"/>
    <!--
    Specifies the culture name that is used to format dates, times, numbers, and currency. The value must be a
    language culture name that has the format nn-NN, such as en-US.
    -->
    <add key="RegionFormat" value="en-GB"/>
    <!--
    Specifies the security services to protect the data stream between the Microsoft Dynamics NAV Web client and
    Microsoft Dynamics NAV Server. This value must match the value that is specified in the Microsoft Dynamics NAV Server
    configuration file. Valid options include: EncryptAndSign, Sign, None
    -->
    <add key="ClientServicesProtectionLevel" value="EncryptAndSign"/>
    <!--
    The name of the computer running the Microsoft Dynamics NAV Server to connect to.
    -->
    <add key="Server" value="IT-NAV"/>
    <!--
    Name of the Microsoft Dynamics NAV Server instance to connect to (for client) or listen on (for server).
    -->
    <add key="ServerInstance" value="NAV_2013R2_LIVE"/>
    <!--
    The authorization mechanism to authenticate users who try to connect.
    Valid options include: Windows, UserName, NavUserPassword, AccessControlService.
    -->
    <add key="ClientServicesCredentialType" value="Windows"/>
    <!--
    The listening TCP port for the Microsoft Dynamics NAV Server. This is part of the server's URL. Valid range: 1-65535
    -->
    <add key="ClientServicesPort" value="50000"/>
    <!--
    Specifies whether the connection to the Dynamics NAV Server instance requires an SPN.
    If true, the connection will only be made to a service with an SPN <ServerInstance>/<Server>:<ClientServicesPort>
    If false, the connection will be attempted to a service with or without an SPN.-->
    <add key="ServicePrincipalNameRequired" value="false"/>
    <!--
    Specifies the amount of time that a connection between the Dynamics NAV Web client and the Dynamics NAV Server can remain idle before the session is stopped.
    Time span format: [dd.]hh:mm:ss[.ff]
    dd: days
    hh: hours
    mm: minutes
    ss: seconds
    ff: fractions of a second
    -->
    <add key="SessionTimeout" value="00:20:00"/>
    <!--
    Specifies whether the Report Viewer options for saving a report as an Excel, Word, or PDF are visible.
    Enabling this parameter might require changing security settings on the server.
    For more information, see the documentation for configuring the Report Viewer.
    -->
    <add key="ShowReportViewerExportOptions" value="false"/>
    <!--
    Specifies whether to show the search action for finding a page or report.
    The action appears in the ribbon and navigation pane of the web client.
    -->
    <add key="ShowPageSearch" value="true"/>
    <!--
    Specifies the connection to the server.
    -->
    <add key="UnknownSpnHint" value="(net.[url=tcp://IT-NAV:50000/NAV_2013R2_LIVE/Service]tcp://IT-NAV:50000/NAV_2013R2_LIVE/Service[/url])=NoSpn"/>
    <!--
    The DNS or subject name from the server certificate.
    -->
    <add key="DnsIdentity" value=""/>
    <!-- Setting for the ACS and AAD authentication (WS Federation authentication) -->
    <!--
    When using it to setup ACS authentication:
    ACSUri is a top level partition of Windows Azure Access Control Service that is used to create the ACS tokens
    Ex. https://CRONUSInternationalLtd.accessco ... calhost%2f
    When using it to setup AAD authentication:
    ACSUri points to the AAD authentication page specific to the AAD tenant that the users are going to authenticate against, e.g.:
    https://login.windows.net/<Tenant_Id>/wsfed?wa=wsignin1.0%26wtrealm=<App Id Uri>
    Where
    "<Tenant_Id>" can be e.g. "CRONUSInternationLtd.onmicrosoft.com". It can be replaced with "common" when the application has External access to the AAD world (and multiple AAD tenant support is needed).
    "<App Id Uri>" can be e.g. "https%3a%2f%2flocalhost%2f". It is the Id that was assigned to the Microsoft Dynamics NAV application when it was registered in AAD. It must be URI-encoded.
    Remarks:
    - Notice the difference between ACS "wsfederation" and AAD "wsfed" resource
    - The query string parameter needs to be URI-encoded (use "%26" instead of "&").
    -->
    <add key="ACSUri" value=""/>
    <!--
    Name of the Microsoft Dynamics NAV Help Server to connect
    to. The value of the "Server" setting is used as the default.
    -->
    <add key="HelpServer" value="IT-WEB"/>
    <!--
    The listening TCP port for the Microsoft Dynamics NAV Help Server.
    Valid range: 1-65535
    -->
    <add key="HelpServerPort" value="49000"/>
    </DynamicsNAVSettings>
    </configuration>
  • k0n4nk0n4n Member Posts: 25
    hi,

    In server where you have installed the web Cliente aplication, if you go to:

    http://localhost:8080

    Can you see the navision site saying: "This is a container"
  • simaaksimaak Member Posts: 7
    Hi k0n4n,

    When I go to http://localhost:8080 on the webserver I see the below message:
    This is the default page for the site container for the web site of the Microsoft Dynamics NAV Web Server Components. You are viewing this page instead of the Microsoft Dynamics NAV Web Client because the URL that you entered in the browser address bar is in a format that is no longer valid.

    To view Microsoft Dynamics NAV Web Client, you must include the web server instance name for the web site in the URL, as shown in the following example:

    <http>://<webserver>[:<port>]/<webserverinstance>/WebClient

    Contact your system administrator to get the web server instance name, and then enter the correct URL in the browser address bar.

    You can find more details about URL format here: Opening a Page in the Microsoft Dynamics NAV Web Client by Using a URL

    Thanks again,

    Simaak
  • k0n4nk0n4n Member Posts: 25
    Hi,

    OK, this is correct, can you post a imagen of your web aplication on IIS for create de correct URL.

    Thanks.

    Regards.
  • flerollandflerolland Member Posts: 7
    Hello,

    can you try to open IIS console and follow these two steps (in green) :


    Hope this helps!
    Best regards,
    François Le Rolland
    R&D Team Leader
    Ortems - PlannerOne Production Scheduler for NAV
  • simaaksimaak Member Posts: 7
    Hi,

    Please find below the screen shots:



    Note that I can access the Web client using LocalHost or ServerName, but not with the IP. This is only possible from the Web Server. If I try from other PCs within domain it doesn't work at all.

    Thanks

    Simaak
  • vremeni4vremeni4 Member Posts: 323
    Hi,

    This error message indicates that you probably did not setup delegation as explained on this MSDN page:
    https://msdn.microsoft.com/en-us/library/jj551742%28v=nav.70%29.aspx?f=255&MSPPError=-2147217396

    The problem is that when a user connects to the Web client the web client does not know if this is valid user or not.
    Hence you need to setup a delegation so that Web client can pass "users"/information to the NAV Server Service.
    For that reason it works fine on the local machine but it does not work from other machines.

    I hope this helps.
    Thanks.
  • simaaksimaak Member Posts: 7
    Hi,

    Im afraid thats done too. We had pretty much checked all the configurations specified in MSDN.

    Tahnks for the response.

    Cheers

    Simaak
  • vremeni4vremeni4 Member Posts: 323
    Hi,

    Did you really create entries on the Active Directory as explained in the MSDN document ?
    And you have all entries for
    NAVSERVER and
    NAVSERVER.corp

    We had the same issue. When the delegation was properly set on the AD it started working.
    So I am pretty sure that your settings in AD are probably not correct.

    Another option that works is to select
    "Trust this computer for delegation to any services (Kerberos only)"
    when you setup delegation.

    Thanks.
  • postsauravpostsaurav Member Posts: 708
    Hi,

    I am not sure about the solution but this is an old method to the issues. Please give it a try -

    1. On the Web Server Navigate to C:\Windows\System32\drivers\etc
    2. Open File hosts in Notepad and move to end of file the last entry should be something like - # ::1 localhost
    3. After that add a entry in the format as below -

    TAB IPADDRESS TAB MachineName

    *TAB Represent the Keyboard button.
    IF MY IP Address is 10.10.10.10 and my host/machine name is x.acme.com then my entry will be -
    10.10.10.10 x.acme.com

    4. Save the file and test after that with IP Adress.

    Let us know the results.

    Thanks & Regards,
    Saurav Dhyani

    Do you Know this About NAV?


    Connect - Twitter | Facebook | Google + | YouTube

    Follow - Blog | Facebook Page | Google + Page
  • simaaksimaak Member Posts: 7
    Hi All,

    Thank you so much for all your responses. The problem was with the Internet Explorer compatibility. Upon adding the Server Name and the IP in the Compatibility View Settings (IE->Tools/Compatibility View Setting) the problem got resolved.

    Thanks again,

    Simaak
Sign In or Register to comment.