Installing a Dynamicweb solution

In this guide we will go through the process of installing a Dynamicweb solution.

We will be starting from scratch with the following:

  • Installing the relevant .NET framework versions
  • Installing a Microsoft SQL Server 2014 Express Advanced
  • Installing SQL Management Studio
  • Activating Internet Information Services (IIS) on your machine

We will then move on to the actual install procedure:

  • Creating the files, folders and permissions required
  • Creating and configuring your solution on the IIS
  • Running the Dynamicweb installer
  • (Optional) Installing Dynamicweb Wrap

Feel free to skip the preliminaries if you have them covered already.

Before you can install a solution, you need to make sure your machine has the following features installed and configured:

  • .NET 4.6 framework
  • Microsoft SQL Server 2012 or newer
  • Microsoft SQL Management Studio
  • Internet Information Services

If you have all these things covered feel free to skip this section – if not simply follow the steps below to get up to speed.

Dynamicweb 9 requires Microsoft .NET Framework 4.6 to run.

  • Go to the Microsoft download center
  • Download the web installer
  • Run it

You may or may not be informed that you already have .NET 4.6 installed on your machine – either way, you can move on to the next step.

You also need to install an SQL database server.

In this guide we will be installing an SQL Express server, which is limited to 2GB databases. This should be adequate for most local solutions, but if you want to move to production or work on large local solutions you should install a full SQL server.

  • Go to the Microsoft download center
  • Download the Microsoft SQL Server 2014 Express with Advanced Services edition appropriate to your machine (32/64 Bit)
  • Run the installer
  • Select a stand-alone installation (Figure 4.1)
Figure 4.1 Perform a stand-alone installation
  • Select Perform a new installation of SQL Server 2014 (Figure 4.2)
Figure 4.2 Select 'Perform a new installation'
  • Accept the license terms
  • Leave the Feature Selection settings as they are
  • Select default instance and click Next (Figure 4.3)
Figure 4.3 Select 'Default instance'
  • Select SQL Server Database Engine under Server Configuration (Figure 5.1) (should be selected by default)
Figure 5.1 Select SQL Server Database Engine
  • Under Database Engine Configuration select Mixed Mode – and provide a password for the sa user (sysadmin) (Figure 5.2). (If your AD is configured correctly you can also use Windows Authentication mode – but that is outside the scope of this guide).
Figure 5.2 Select 'Mixed Mode'
  • Select Install and configure (Figure 5.3)
  • Finish the installation
Figure 5.3 Select 'Install and configure'

On .NET 3.5 SP1

To install Microsoft SQL Server 2014, you may have to install .NET 3.5 SP1 on your machine – be aware that there is a known bug in Windows 10 with the official installer. You will have to use a workaround, such as this one.

If you are able finish the install procedure you have nothing to worry about.

Next, you should create an SQL user with the right permissions for installing the Dynamicweb database:

  • Open SQL Server 2014 Management Studio
  • Right click the Security node and select New > Login
  • Enter a login name for the user (Figure 7.1)
  • Select SQL Server Authentication and enter a password and confirm it.
  • Uncheck enforce password policy
Figure 7.1 Creating an SQL user with the right permissions

Finally, you must make sure that you have the correct windows features installed and activated on your machine

  • Open your start menu and start typing Turn windows features on or offopen the window using the control panel
  • Locate the node called Internet Information Services – check it
  • Fold out the World Wide Web Services > Application Development Features and check the following features (Figure 8.1):
    • .NET Extensibility 3.5
    • .NET Extensibility 4.6
    • ASP.NET 3.5
    • ASP.NET 4.6

You are now ready to start the installation process. 

Once your hosting environment is ready you can start the installation process.

The installation process involves:

  • Creating the files, folders and permissions required
  • Creating and configuring the solution on the IIS
  • Running the Dynamicweb installer
  • (Optional) Installing Dynamicweb Rapidoby replacing the Files folder and restoring a Rapido database

First you need to create the appropriate folders, files and permissions on your machine:

  • Create a folder for Dynamicweb projects – call it DW9Projects or equivalent
  • Create a folder called Solutions and a folder called Applications
Figure 10.1 Creating your files & folders
  • Ensure that the top folder (DW9Projects) has full rights – start by adding the user Everyone and giving it full access (Figure 10.2). You can change the permissions later, when everything is up and running
Figure 10.2 Add the user Everyone and give it full rights

You can now install the Dynamicweb application in two ways:

  • Downloading and extracting a zipped application library
  • Using Visual Studio to install using our package feed (for local solutions)

To install the application the classic way:

  • Download an application from the Downloads section – you need to login
  • Extract it to the Applications folder – it should end up looking like Figure 11.1
Figure 11.1 The extracted applications folder

This should take care of the folders, files and permissions – you can now create a new website on your IIS manager

If you're a developer installing a solution locally, you can also install the application using Visual Studio 2015 and the NuGet Packages extension.

To do so:

  • Create a new solution of the type ASP .NET web application for .Net 4.6
  • When prompted, select the Empty template
  • Right-click the project and go to Manage NuGet Packages (Figure 12.1)
Figure 12.1 Manage NuGet packages
  • Open the NuGet Package Manager settings and add the Dynamicweb package feed (Figure 12.2):
    • Name: DW Production
    • Source: https://www.myget.org/F/dynamicweb-packages/api/v3/index.json

 

Figure 12.2 Add the DW Production feed
  • Select the newly created DW Production feed as source and browse for the Dynamicweb.Admin package
  • Under options set:
    • Dependency behavior to lowest
    • File conflict action to overwrite all
  • ​Click Install

After a while you will be prompted to review and accept the changes - do so, then accept the License terms.

Now go get coffee or something - the install procedure takes a while.

Once the installation is complete, right click the solution and build it (Figure 12.3) - you now have a local solution installed, and it's time to create it on the IIS.

Figure 12.3 Build the solution

To create the freshly installed solution on the IIS Manager:

  • Open the IIS Manager
  • In the left side menu, right-click Sites and click Add website – then configure it (Figure 13.1):
    • Enter a site name
    • Point the physical path to the Application folder you extracted earlier
    • Give it a host name – (Local installations: yoursitename.local.dynamicweb.dk, or add a record to the hosts file and use that)
    • Click OK
Figure 13.1 Creating the solution on the IIS Manager

You may have to restart your machine at this point – then go to a browser and enter the host name in the address bar.

This should launch the Dynamicweb Installer. 

The Dynamicweb installer lets you create a new solution with a barebones set of templates and a clean database.

On the setup database step, select the SQL Server database (2012 or newer) option (Figure 14.1), then:

  • Write localhost as the server
  • Name the database – this will be the name of the shiny new database you are creating
  • Check create database if it does not exist
  • Enter the username and password of the SQL user you created after installing the SQL Server in the previous section (if this fails, try using the sa user)
  • Click test connection to verify that Dynamicweb can connect correctly
  • Click Install database
Figure 14.1 Installing the database
  • On the configure license step (Figure 14.2) select Trial license – then accept the license terms and click Set license. Please note that this step has no effect, and will be removed in a future update. Licenses are now handled using a new license model - see more here.
Figure 14.2 Selecting a license
  • On the configure administrator step (Figure 14.3) provide a name, an email and a password to your administrator user

That’s it – you’re done. While the installer will redirect you to a login screen, you need to restart your machine before you can actually login.

Restart your machine, then open a browser and enter the URL you defined earlier (Local solutions: yoursitename.local.dynamicweb.dk ).

Congratulations, you’ve got a local solution up and running :)

Figure 14.3 Creating an administrator user

Next you may want to install Dynamicweb Rapido on the solution - a highly configurable implementation of a frontend, and functions as a starting point for developing and implementing solutions on Dynamicweb.

To install Rapido on your solution follow this guide.

You may find some of the advanced configuration options below useful. Most will improve performance and quality of life, but none are obligatory.

Some of the default application pool settings are less than ideal, and you may want to change them to improve performance or your user experience:

  • Up the queue length to 4000
  • Set the Idle Time-out Action to Suspend to prevent your website from shutting down completely after Time-out. This will save you some frustration in the morning and coming back from lunch
  • Set the Regular Time Interval to 0 to prevent the application pool from automatically recycling at regular intervals (which is always at an inconvenient time)
Figure 17.1 Advanced application pool settings

Pipelines and other advanced options

Application pools with both Classic and Integrated pipelines are supported but Integrated is recommended. Furthermore it’s recommended to run your application pool in 64 bit mode and to use the NetworkService identity. Should you choose to use the ApplicationPoolIdentity you need to set “Load User Profile” to True.

If you intend to use ActiveDirectory integration the application pool is required to run as the NetworkService identity

Technically, a scheduled tasks is just some settings in the database – to actually execute a scheduled task, Dynamicweb depends on a central scheduled task on the server executing the tasks in the DW database.

The central scheduled task will send a request (using curl.exe) to the solution every 5 minutes, and the solution will then check if any of the scheduled tasks should be executed. As of 9.5, curl.exe has been replaced by poweshell, which must be installed on the solution.

If the solution is hosted by Hostnordic, everything should work out of the box as soon as you create a scheduled task in Dynamicweb. But if it doesn’t…

  • Go to Settings > System > Scheduled Tasks
  • Click Impersonation and select Custom Credentials
  • Enter the credentials of an administrator on the server – this is necessary to create tasks on the server. The credentials are not stored anywhere. Don’t forget the domain – the windows scheduled task will NOT be created without it.
  • Create a scheduled task

You will then either see a small error message – failed to handle windows scheduled task – or a short Completed message.

This is a one-time thing only, as all subsequent scheduled tasks will use the server task created using the procedure above.

If you can’t get the above procedure to work, and you have remote access to the server, you can set the server task up manually instead.

  • Access the server in question
  • Open the Task Scheduler/Scheduled Task program
  • Create a new task
  • Select the Start a program action and select curl.exe
  • Add an argument pointing to TaskExecute.aspx: “-k http://www.mydomain.com/Admin/Public/TaskExecute.aspx “. The –k parameter is only relevant for solutions with SSL.
  • Schedule the task to run every 5 minutes, and make sure it uses the SYSTEM user account.

When using IIS 8 on Windows 8 / 2012 Server, the following permissions should be used for the root folder, under which the Dynamicweb application is installed:

Folders

  • \(root folder, e.g. E:\)
User Permissions
NETWORK SERVICE List folder content

The following permissions should be used for the Dynamicweb solution folders:

Folders

  • Application\ (e.g. E:\Dynamicweb.net\Application\)
  • Database\ (e.g. E:\...\my-site.dynamicweb-cms.com\Database\)
  • Files\ (e.g. E:\...\my-site.dynamicweb-cms.com\Files\)
User Permissions
NETWORK SERVICE
  • Modify
  • Read & Execute
  • List folder contents
  • Read
  • Write

MACHINE\ASPNET

MACHINE\IUSR_MACHINE

  • Read & Execute
  • List folder contents
  • Read
  • Write
  •  

Special note on the Files folder

By design all data under the Files folder is accessible from outside the network unless you configure a secure folder – see Extranet.
This includes files for data integration, uploaded files containing sensitive information, etc.

It is your responsibility as solution partner to secure this data.

In most cases, you want to keep your solution separate from the application - this makes it much easier to upgrade you solution down the line.

To do so:

  • Create a subfolder in the Solutions folder
  • Copy the /files folder from the application folder to the solution subfolder

Later on, when you create the solution on the IIS, you will add a virtual /files directory and point it to this files folder. You can then switch to newer applications with a minimum of hassle.

Next, create a virtual /files directory and point it to the solution files folder:

  • Right-click on the website and click Add Virtual Directory (Figure 22.1)
  • Write files in the Alias field
  • Enter the physical path to the files folder in the Solutions subfolder
  • Click OK
Figure 22.1 Creating a virtual Files folder

Using a virtual folder makes it possible to upgrade and downgrade your solution by pointing it to a different application, without having to copy the files folder every time.

It also means you can have several solutions run on the same application, which can be useful.