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">
<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
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.
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>
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"
When I go to http://localhost:8080 on the webserver I see the below message:
Thanks again,
Simaak
OK, this is correct, can you post a imagen of your web aplication on IIS for create de correct URL.
Thanks.
Regards.
can you try to open IIS console and follow these two steps (in green) :
Hope this helps!
Best regards,
R&D Team Leader
Ortems - PlannerOne Production Scheduler for NAV
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
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.
Im afraid thats done too. We had pretty much checked all the configurations specified in MSDN.
Tahnks for the response.
Cheers
Simaak
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.
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
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