Tag: Powershell

How to: Set Up Multiple Web Server Instances for the Microsoft Dynamics NAV Web Client – Part 2

If you enjoyed (or still enjoying?) creating your Web Clients manually like I described in one of my previous posts How to: Set Up Multiple Web Server Instances for the Microsoft Dynamics NAV Web Client – Part 1, so I believe it is time to automate this process a little bit.

To achieve that, I wrote a small PowerShell script. The script is self-explanatory 😉

Feel free to use it, or better enhance it 🙂

#Set-ExecutionPolicy RemoteSigned

mkdir ‘C:\Inetpub\wwwroot\MyWebClient’
mkdir ‘C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\Web Client\MyWebClient\WebClient\Resources\ExtractedResources’
cmd /c icacls ‘C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\Web Client\MyWebClient\WebClient\Resources\ExtractedResources’ /grant ‘IIS_IUSRS:(OI)(CI)(RX,W)’
copy ‘C:\Inetpub\wwwroot\\DynamicsNAV90\web.config’ ‘C:\Inetpub\wwwroot\MyWebClient\web.config’
Invoke-Expression -Command ‘cmd /c mklink /d “C:\Inetpub\wwwroot\MyWebClient\WebClient” “C:\Program Files\Microsoft Dynamics NAV\90\Web Client”‘

Import-Module WebAdministration
IIS:
New-WebVirtualDirectory -Site ‘Microsoft Dynamics NAV 2016 Web Client’ -Name ‘MyWebClient’ -PhysicalPath ‘C:\Inetpub\wwwroot\MyWebClient’
ConvertTo-WebApplication -PSPath ‘IIS:\Sites\Microsoft Dynamics NAV 2016 Web Client\MyWebClient\WebClient’ -ApplicationPool ‘Microsoft Dynamics NAV 2016 Web Client Application Pool’
New-Item ‘IIS:\Sites\Microsoft Dynamics NAV 2016 Web Client\MyWebClient\WebClient\Resources\ExtractedResources’ -type VirtualDirectory -physicalPath ‘C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\Web Client\MyWebClient\WebClient\Resources\ExtractedResources’

This blog is available also on Microsoft Dynamics NAV Community

How to: Set Up Multiple Web Server Instances for the Microsoft Dynamics NAV Web Client – Part 1

No, you guessed wrong! I am not going to add another blog to explain how to use Powershell to create and setup a Dynamics NAV Web Instance.

As a quick reminder you can refer to msdn here and use Microsoft Dynamics NAV Administration Shell to easily create a new web instance.

But what if I cannot use Microsoft Dynamics NAV Administration Shell? Yes, now you guessed right. This is the reason behind this blog post.

Scenario (summary in three points):

  • You installed NAV Server and Web Server on separate machines.
  • In your NAV Server you can locate Microsoft Dynamics NAV Administration Shell.
  • In your Web Server you cannot locate Microsoft Dynamics NAV Administration Shell.

You quickly notice that you cannot apply what msdn says, because simply you do not have Microsoft Dynamics NAV Administration Shell installed on your Web Server.

What is the solution then? From my side, I explored two options:

  1. Powershell remote session from NAV Server to Web Server and apply the New-NAVWebServerInstance,
  2. Build a Web Instance from scratch.

I quickly dropped the first option due to network and firewall issues and because the second option sounds more fun 😉

So, let’s build that web instance.

To achieve that, open your IIS and locate the default Web Instance, “DynamicsNAV90” in my case.

iis_web_client

It is easy now. You just must create the same structure (I highlighted the important parts).

  • Create a virtual directory,
  • Give it a name: MyWebClient
  • Point the physical path to a folder: “C:\inetpub\wwwroot\MyWebClient”
virtual_directory

Now, execute this command line as administrator:

mklink /d “C:\Inetpub\wwwroot\MyWebClient\WebClient” “C:\Program Files\Microsoft Dynamics NAV\90\Web Client”

This will create a symbolic link to the “C:\Inetpub\wwwroot\MyWebClient\WebClient” that points to “C:\Program Files\Microsoft Dynamics NAV\90\Web Client”.

Then, copy the “web.config” from the default web instance and past it to MyWebClient (Change the web.config to point to another NAV Server if needed):

webconfig

Now, create the following folder “C:\ProgramData\Microsoft\Microsoft Dynamics NAV\90\Web Client\MyWebClient\WebClient\Resources\ExtractedResources” and assign the following permissions to IIS_IUSRS:

ExtractedResorces

Create a Virtual Directory that points to the folder we just created:

ExtractedResorces_virtualdirectory

Last step, convert “WebClient” to an application:

application

Now, try to connect to your new and freshly created web site http://localhost:8080/MyWebClient/WebClient/

P.S1: in this blog, I used NAV 2016 as an example. But the same apply to all NAV versions with a web client.

P.S2: I used default installation folder. You may need to adapt this for your test.

P.S3: You try this trick on your own risk.

P.S4: I’ll let you play with it and create the whole web site from scratch 😉

This blog is available also on Microsoft Dynamics NAV Community

© 2023 NAV NAB BLOG

Theme by Anders NorenUp ↑