eCommerce

This page covers the setup and configuration steps necessary to begin using eCommerce in conjunction with DEACOM.

Prerequisites

All prerequisites in the four sections below must be met prior to setting up a Deacom instance using an eCommerce Service and IIS.

License and Main Application

The main Deacom app must already installed on your machine, either running as a standalone from the Deacom.Webserver.Console or running as a service. In addition, you must have a valid eCommerce license. To obtain a license, please contact Product Licensing and Delivery.

Installing the DEACOM eCommerce Update

  1. Note the Server and DEACOM system database name from the DEACOM ini file. You will also need the password that was used when first installing DEACOM.
  2. Run the UpdateeCommerce installer. Note: The UpdateeCommerce installer must match the version of your DEACOM installation.
  3. Select a location to install to.
  4. Enter the server and DEACOM information when prompted.
  5. Enter server and database name for eCommerce.
  6. Enter log-in information or use Windows Authentication if that is enabled on the server.
  7. Create a new password that will be used for the created deacomecom user for this server (If installing multiple instances on the same server, use the same password.)

Installing the eCommerce Service

After installing eCommerce, there will be a console app available (akin to the web console) that can be used to run eCommerce. There is also a service that can be installed as well, much like that of the web service.

  1. Locate the eCommerce directory.
  2. Open the deacom.ini file and note the WEBSVCPORT. This is the port that eCommerce is listening on and will be the default port used when installing the service.
  3. Run Deacom.eCommerce.Service.Installer.exe
  4. Select the Installation path.
  5. Enter windows user information that will be used to run the service.
  6. Change port here if a different listening port is desired.
  7. Click Install.
  8. After installation is successful, a prompt will appear that the service is installed.

Installing and Configuring IIS

The Internet Information Services (IIS) Adapter allows eCommerce to communicate with HTTPS. If using the IIS Adapter, setting up IIS first is recommended. The address of the site will be [null http://<yourIISDEACOMSite>.com], where "yourIISDEACOMSite" is the server name or IP address of the server where the eCommerce Service is installed. With or without IIS, the site will always be accessible via [null http://<yoursite:yourport]>, where "yourport" is the port selected in the service installation process process.

Why Separate Your Application Server from your Database Server?

Security

Security is the major consideration when deciding whether to host the eCommerce services and database on the same machine. If a single machine hosting both the eCommerce service and its database is compromised, both webserver and database are vulnerable. With two servers, the 2nd server should still be secure.  

The benefits of storing the database separately from the eCommerce service are increased in the case of a DMZ/internal(private) network configuration being that the database can be behind an additional firewall. If your eCommerce service machine gets compromised, and your user privileges are set low on the Sql login, the maximum exposure is what your app can do through the backend API. If you have a business tier in between, you have one more step between your attacker and your data. It, therefore makes very little sense, in the case of a DMZ/Internal network scenario to store the eCommerce database on the same server as the eCommerce service being that it in no way needs to be in the outer layer of security.

In an ideal scenario, for security purposes, the database server would be sitting in a private network behind a firewall with only the ports required to perform data access opened. The eCommerce service would be located in a DMZ, accessible to the public internet, taking untrusted input from anonymous users. The eCommerce service would communicate to the database server with a SQL account with limited rights.  

Performance

There will always be a slight hit to performance when making interactions between the application and the database over a network rather than locally. This hit is generally negligible, especially in the case of quick network speeds, but that delay can be further offset by configuring each separate machine according to its needs.  

Webserver applications pose different hardware needs than database interactions do. Databases generally perform better with high memory provisions and a quick disk array. Web servers only require enough memory to cache files and frequent DB requests. In a poorly optimized single-machine configuration, the two can quickly contend for limited resources. If, for instance, the webserver becomes resource intensive, it can easily cause the CPU cycles on the machine to spike, and even halt the machine. This is unlikely in the case of Deacom, but depending on the hardware specs of the server it’s possible. Therefore, performance can come at the cost of reliability in the case of a single-server that’s not optimized for both database interactions and the application.  

In an ideal scenario, for security purposes, the eCommerce services will be together on a machine that is spec’d accordingly for a webserver application and the database will reside on a machine that is spec’d accordingly for database needs. This will negate any performance hit that occurs when making the transactions over a network.  

Scalability

There are some scalability benefits to separating any webserver and its database. This is because it is arguably easier to maintain a few database servers that are used by potentially many different web applications. Less work is necessary when applying upgrades or patches and doing performance tuning to separate machines than if all is on one machine.  

In an ideal scenario, the database would be kept on a machine isolated from any webserver application. Having the web applications each on its own machine allows for simple horizontal scaling. Vertical scaling of a database server can be very difficult.  

Cost

As mentioned before below the performance header, web applications pose different hardware needs than database interactions. Two answers to this problem are to either scale the single machine to be powerful enough for both (and potentially waste overhead) or fine tune two specialized machines, each for its designated needs. The two servers won't necessarily be less expensive than the single server will be, however performance/cost ratio should be higher for each machine since there won’t be two different applications competing for resources. For this reason, there is a potential risk of having to spend more for one server which caters to both and offers equivalent performance to 2 specialized ones.

Virtual Machines vs Servers

The following is a summary of the excellent article found here https://www.nakivo.com/blog/physical-servers-vs-virtual-machines-key-differences-similarities/

 

Security

Security management is more easily configurable in a virtual server environment than in a physical one. With physical servers, you have to build a system of protection for each individual server, depending on its computing capabilities and resources and the sensitivity of data that it stores. This can be a resource-intensive task if your IT infrastructure is built upon 10 or more physical servers.

On the other hand, a virtual server environment can be protected on the basis of a universal security model. Thus, security policies and procedures can be developed, documented, and implemented from a single pane of glass - that is, through the hypervisor dashboard. 

Performance

This factor should be considered if your organization works with a large amount of data which needs to be constantly processed. Physical servers are far more powerful and efficient than VMs, due to the fact that VMs are prone to performance issues as a result of an overflow of virtual servers in a physical machine. Thus, a physical machine and a virtual machine, both having the same hardware and software resources and capabilities, cannot perform on the same level. If your organization runs operations which require the use of computing resources to the fullest extent, a physical server is the optimal choice. 

Scalability

To expand a physical server environment, you need to buy additional hardware components, which can be very expensive, and go through a long process of installation and configuration. At the same time, a virtual server environment provides the option of on-demand scalability. A single virtual server can host multiple VMs at the same time, which can be added or removed with the click of a mouse. Your virtual environment can be scaled up or down depending on the growth of your business needs. In this case, you don’t need to buy additional hardware to ensure VM deployment. This is due to the fact that VMs running on the host share the same computing resources, which can be evenly distributed among all VMs. Thus, you can design an easily configurable environment which can carry out operations of any complexity levels. 

Cost

Building and maintaining a physical server environment can be quite expensive. This is due to constant hardware and software upgrades, frequent system failures, and breakdown of computer components and equipment, which are difficult or even impossible to repair.

Physical servers do not use their hardware and software capabilities to maximum levels, with their average production capacity being at 25%. Thus, a lot of computing resources are left unused, which isn’t cost-effective. On the other hand, a server hosting multiple VMs takes care of underutilized resources by distributing them among other VMs which need it most. This way, optimum capacity management is achieved.

Main Application Installation 

Server 1

Main Application Database

Server 2

eCommerce Backend Installation

Server 3

eCommerce Backend Database

Server 2 OR Server 4 (if desired separate from main app dbs)

eCommerce Frontend Installation

Server 3

IIS Configuration for eCommerce backend AND frontend

Server 3

Setting up a Deacom instance using an eCommerce Service and IIS

Installing Deacom eCommerce as a service with a paired IIS front end is a safe way to configure the application for a production environment. In the event that you would like to install SSL on your website in the future, it is necessary to have IIS act as the front end. The sections below will walk through an optimal installation of a default IIS environment.

Step 1 - Installing the eCommerce Skin

  1. Run the eCommerceSkinInstaller.msi file.
  2. When prompted for the components to install, choose “Will be installed on local hard drive” for both “eCommerceSkinInstaller” and “IIS Default Setup”.
  3. On the same screen, you can choose the directory to install the eCommerce Skin by highlighting “eCommerceSkinInstaller” and clicking the “Browse…” button.
  4. Once all settings are correct, proceed through the installation until completion.

Step 2 - Configuring IIS to serve the website

The Internet Information Services (IIS) Adapter allows eCommerce to communicate with HTTPS. If using the IIS Adapter, setting up IIS first is recommended. The address of the site will be http://<yourIISDEACOMSite>.com, where "yourIISDEACOMSite" is the server name or IP address of the server where the eCommerce Service is installed. With or without IIS, the site will always be accessible via http://<yoursite:yourport>, where "yourport" is the port selected in the service installation process process. The IIS site should have already been installed automatically via the eCommerce Skin Installer, but it can be done manually. Instructions for this are shown below.

  1. Navigate to IIS Manager (Internet Information Services Manager).
  2. You will notice that “DeacomeCommercePool” now exists under “Application Pools”, and your website configuration now exists under “Sites”.
  3. Ensure that the DeacomeCommercePool is running and contains the following settings in the “Basic Settings” menu. “NET CLR Version” should be “.NET CLR Version 4.0.30319”. “Managed Pipeline Mode” should be set to “Integrated”.
  4. Click on your site and note the right sidebar of the IIS window. Under the “Bindings…” option, verify that the port for the website to be accessed is what you expect. (This is the port that customers will navigate to in order to view the website.) The default is port 5001. Therefore, to visit your site locally, you would access the site via localhost:5001 in a browser. If this port is not what you expect, change it via the “Bindings…” menu now.
  5. Authenticate as a given user for your site. Click on “Basic Settings…” in the right sidebar. In the settings screen, click on “Connect as…”. Click on the “Specific user” bubble on the connection screen, and then click “Set…”. Enter your account’s username and password. If your user account is behind a domain, your username follows the format: domain\user. Click OK to close out of all open IIS submenus once this is complete.
  6. After the authentication is set up, we will now verify the credentials. Click on “Basic Settings…” in the right sidebar and click on “Test Settings…” in the settings screen. You should be presented with a list of 2 green checkmarks for both “Authentication” and “Authorization”. If this is not the case, return to the previous bullet point and correct any authentication errors for your user, then retry.
  7. Start up your main Deacom application, either through the Deacom.Webserver.Console, or through the Deacom Windows service. (Whichever you have opted to install).
  8. Log into your main Deacom application and navigate to Tools > Maintenance > eCommerce Sites. Modify your eCommerce Site.
  9. On the Edit eCommerce Site page, ensure that the “Website” field contains http://localhost:<your chosen IIS port>. For example, http://localhost:5001. This is the port that the customer will use to view the website.
  10. Ensure that the “Port” field contains the backend ServiceURL port that you wish to use. For example, 8081. This is the port that all eCommerce API requests will be passed through. Write down the port that you entered, then save the form and exit out of your browser.
  11. Highlight your website in IIS and click “Explore” on the right sidebar. You will be directed to a Windows Explorer window containing the site content. Navigate to the “js” folder, and open “settings.js” in Notepad.
  12. You will notice a line in the file that will appear similar to the following: ServiceURL: 'http://localhost:8081' Change the port at the end of this line to match the port that you entered in Step 9 of this Part, then save and exit the file.

Step 3 - Configuring the IIS Adapter

*** After installing the eCommerce (above) , there will be a console app available (akin to the web console) that can be used to run the eCommerce backend/API. There is also a service that can be installed as well. much like the that of the web service. The IIS adapter is necessary in order to provide SSL/HHTPS support for eCommerce sites. When configured, it will take the signal that the eCommerce backend (either installed as a service or running over Deacom.ecommerce.Console) broadcasts over http, and convert it to https. This is necessary if the frontend bindings specify https, or else browsers will consider the signal mixed and block the backend. 

  1. Navigate to your main Deacom installation directory and open the “Ecommerce” folder, then copy the IISAdapter folder. Paste the copied folder into the root of the C:/ drive.
  2. Right-click on the website in the left sidebar that was created in Step 2 "Configuring IIS to Serve the Website" and select "Add Application".
  3. Fill in the Alias field as desired. This can be any non-whitespace separated string. Example DeacomEcommerceIISAdapter.
  4. Click "Select" next to the "Application pool" field and select the application pool with a name that matches your site name.
  5. Click "..." next to the "Physical path" field and set it to Deacom eCommerce IISAdapter folder that was just copied to the root of C:/.
  6. Click on "Connect as..." and enter the same credentials that you used for your user account in Step 3, #5.
  7. Click on “Test Settings…” in the settings screen. You should be presented with a list of 2 green checkmarks for both “Authentication” and “Authorization”. If this is not the case, return to the previous bullet point and correct any authentication errors for your user, then retry.
  8. Highlight your Application Pool in IIS and click “Stop” on the right sidebar, then click “Start”.
  9. Navigate to C:\IISAdapter (or wherever your IIS Adapter directory has been copied to) and edit the "Settings.ini" file. If this file doesn't exist, create it. Ensure the following lines exist:
    1. SERVER=<IP/name of the server running the eCommerce backend (Console or service)
    2. PORT=<The port that eCommerce backend is broadcasting on> 
  10. Edit the frontend settings to point to the new https service url hosted by the IISAdapter
    1. Navigate to <Frontend frontend Install Directory> and edit appsettings.json
      1. In the "ServiceURL Node
        1. Add "https" instead of "http"
        2. Replace the port section with "/IISAdapter"
        3. IE: "ServiceURL": "[null https://<IP]>/IISAdapter"
    2. Navigate to <Ecommerce frontend Install Directory>\wwwroot\production and edit settings.js
      1. This should have the same edits as appsettings.json
  11. The IIS Adapter is now configured, and the site has propagated the changes we have made.

Step 4 - Configuring the Deacom eCommerce Service

After installing eCommerce (above), there will be a console app available (akin to the web console) that can be used to run eCommerce. There is also a service that can be installed as well, much like that of the web service.

  1. Locate the directory of your Deacom installation.
  2. Open the deacom.ini file and note the WEBSVCPORT. This is the port that eCommerce is listening on and will be the default port used when installing the service. (Note this port)      
  3. Run “Deacom.eCommerce.Service.Installer.exe”.
  4. Enter windows user information that will be used to run the service.
  5. Select your preferred installation path and enter the same user login information you used to set up the IIS credentials in Part 2, Step 5 of this guide.
  6. Ensure that the listening port matches the ServiceURL port that you previously used in Step 3, #8 of this guide. (This should be the same port as noted in step 2 of this part.) You can change the port here if a different listening port is desired, but ensure that the necessary ports are updated accordingly.
  7. Click “Install” and wait for the installation success message to appear.
  8. After installation is successful, a prompt will appear that the service is installed.  
  9. Access the eCommerce service from the “Services” menu in Windows. This can easily be found by typing “Services” in the start menu of a Windows 10 machine. The default name of the service that you installed is “Deacom.Ecommerce.Service - <Name of your main Deacom System database>”.
  10. Verify that the service’s status is set to “Running”.

Step 5 - Final Validation

  1. Ensure the following:
    1. Either a Deacom.Webserver.Console instance is active, or the Deacom Windows Service is set to “Running”.
    2. The Deacom.Ecommerce.Service is set to “Running”.
    3. Your IIS Application Pool and IIS Website are both set to “Started” in the IIS Manager.
  2. Open a new Incognito window in Chrome, a new Private Browsing window in Firefox, or a new InPrivate window in MS Edge.
  3. Navigate to a localhost:port address (e.g. localhost:5001) that matches the port that was bound in IIS. (This was set in Step 3, #4 of this guide).
  4. Your eCommerce front end website should load and be navigable.

Additional Options and Steps

Configuring SSL Redirects (Optional)

If you would like to enable SSL for your site and serve the content over HTTPS, we will need to set up specific bindings and redirect rules to accomplish this. This section is entirely optional and only necessary if you intend to set up SSL protection.

  1. Install the URL Rewrite Module for IIS. You will need to download this separately from the Microsoft IIS support site here: https://www.iis.net/downloads/microsoft/url-rewrite
  2. After the module is downloaded, restart the IIS application.
  3. Double click on your site in the left sidebar of IIS under the “Sites” folder to be taken to the site’s menu.
  4. Double click the “URL Rewrite” icon in the menu.
  5. Click on “Add Rule(s)” in the right sidebar, then choose “Blank Rule” under the “Inbound Rules” section.
  6. Give the rule any name. In the “Match URL” section, ensure that the “Requested URL” dropdown is set to “Matches the Pattern”. Also, ensure that the “Using” dropdown is set to “Regular Expressions”. Enter (.*) in the Pattern box and tick the “Ignore Case” checkbox.
  7. Under the “Conditions” section, click “Add”. A new box will open. Insert {HTTPS} into the “Condition Input” field. Ensure that the “Check if input string” dropdown is set to “Matches the Pattern”. Finally, insert ^OFF$ into the “Pattern” field, and tick the “Ignore Case” checkbox. Click “OK”.
  8. Under the “Action” section, set the “Action Type” dropdown to “Redirect”. Set the “Redirect URL” field to https://{HTTP_HOST}{REQUEST_URI} and uncheck “Append Query String”. Ensure that the “Redirect Type” dropdown is set to “Permanent (301)”.
  9. Click “Apply” in the right sidebar.
  10. Return to the Site menu by clicking on your site in the left sidebar.
  11. We will now need to set up special bindings to actually apply these rules. Open the “Bindings…” menu from the right sidebar. The bindings we now need will supersede the bindings previously set up in this guide. Any pre-existing bindings shown on this screen should be cleared out with the “Remove” option.
  12. Once no bindings exist, set up a new one by clicking the “Add…” button. Set the “Type” dropdown to “http”, then set the port to 80, and click “OK”.
  13. Set up another new binding by clicking the “Add…” button. Set the “Type” dropdown to “https”, then ensure that the port is set to 443. New checkboxes and dropdowns will appear due to the choice of “https” above.
  14. Click on the “SSL Certificate” dropdown and choose “IIS Express Development Certificate”. Click “OK” and close the “Bindings” menu.
  15. Highlight your website in IIS and click “Restart” on the right sidebar.
  16. Highlight your Application Pool in IIS and click “Stop” on the right sidebar, then click “Start”.
  17. Log into your main Deacom application and navigate to Tools > Maintenance > eCommerce Sites. Modify your eCommerce Site.
  18. On the Edit eCommerce Site page, ensure that the “Website” field contains http://localhost:80. Save this form and exit your browser.
  19. Open a new Incognito window in Chrome, a new Private Browsing window in Firefox, or a new InPrivate window in MS Edge. Type localhost in the address bar and hit enter.
    1. You may receive a security warning from your browser that this site is insecure. This is only because we are using a development certificate that is not signed by a trusted Certificate Authority. You would not receive this error in a production environment. Utilizing a production certificate instead of the IIS Express Development Certificate would resolve this.
    2. If you receive any security warnings, simply click “Advanced” on the warning page and “Accept the risk and continue”, or any variation thereof, dependent on your browser.

Your eCommerce front end website should load under HTTPS and be navigable.

Troubleshooting

If the site does not load due to a permission error, navigate to the root of your site via the “Explore” option, and edit the properties of your “web.config” file. Under the “Security” menu, click “Edit” for each existing user, and ensure that “Full Access” is ticked for each.

Installing the IIS Adapter manually 

If the Deacom eCommerce Services have already been installed but the IIS Adapter has not, it can be manually installed at a later time using the following steps.

  1. Open the Server Manager and enable the proper features. 
    1. Click "Start" on the computer, type "CMD", and open the Command Prompt.
    2. On the Command Prompt, type "ServerManager" and press Enter on the keyboard.
    3. Click "Add Roles and Features".
    4. In Server Roles, put a check next to "Application Server".
    5. When prompted, ensure that both .NET Framework 4.5 and Web Server (IIS) Support are enabled.
    6. Click "Next" to go to Features, then under .NET Framework 4.5 Features, ensure that ASP.NET 4.5 is enabled.
    7. Click "Install" to confirm enabling the selected features.
  2. Access the IIS Manager and add an Application Pool. 
    1. Click "Start" on the computer, and open the Control Panel.
    2. Select Administrative Tools, then Internet Information Services (IIS) Manager.
    3. Expand the Connections to reach "Application Pools".
    4. Right-click on "Application Pools" and select "Add Application Pool".
    5. Enter the name and ensure the ".NET CLR version" field is set to ".NET CLR Version v4.0.30319" and the "Managed Pipeline Mode" field is set to "Integrated".
    6. Click "OK" to create the Application Pool. Leave the IIS Manager open for subsequent steps.
  3. Copy the IIS Adapter to a place on the server that has IIS installed. For example, copy from C:\Program Files\DeacomeCommerce\IISAdapter to C:\IISAdapter.
  4. In the IIS Manager add a virtual directory. 
    1. In the IIS Manager, expand the Connections again to reach "Default Web Site".
    2. Right-click on "Default Web Site" and select "Add Application".
    3. Fill in the "Alias" field (Example: Deacom).
    4. Click "Select" next to the "Application pool" field and select the Application Pool created in step 2.
    5. Click "..." next to the "Physical path" field and set it to Deacom eCommerce IISAdapter folder (Example: C:\IISAdapter).
    6. Click "Test Settings..." Note: If the default user does not have access to the physical path selected, create a local user and give it access, then click "Connect as..." and enter the new credentials.
    7. Click "OK" to finish creating the virtual directory.
  5. Edit the ApplicationHost.config file. 
    1. On Windows Server 2012, open File Explorer, navigate to "C:\Windows\System32\inetsrv\config\ApplicationHost.config" and open the file with NotePad.
    2. In NotePad, find <section name="handlers" overrideModeDefault="Deny"><section name="handlers" overrideModeDefault="Deny"> and change it to "Allow". Save and exit.
    3. When using a separate user on Windows Server 2012, open File Explorer and give the Windows user read/write access to the "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files" folder.
    4. If the Web Services are running on a different server or port, navigate to the Deacom IISAdapter folder and create/edit the "settings.ini" file.
    5. Add a line for the server name: SERVER=ServerName
    6. Add a line for the port number: PORT=8080

Configuring IIS to listen for SSL on an alternate port 

In situations where users will need to configure the IIS to listen on an alternate port, the IIS Adapter now correctly maintains the custom port number in the URL. Follow the below steps to accomplish this.

  1. Access the IIS Manager and change the port. 
    1. Using a working IISAdapter setup, log into the server.
    2. Click "Start" on the computer, and open the Control Panel.
    3. Select Administrative Tools, then Internet Information Services (IIS) Manager.
    4. Expand the Connections to reach "Default Web Site".
    5. Right-click "Default Web Site" and select "Edit Bindings".
    6. Select HTTPS and click "Edit".
    7. Modify the Port, save the changes, then exit the Edit Bindings form. Example: Change the port from 443 to 4400.
    8. Right-click "Default Web Site", select "Manage Website", then select "Restart".
  2. Verify a user can access the application using a web browser. 
    1. From a browser, enter the URL with the new Port number selected. Example: https://server1:4400/.
    2. Verify that a DEACOM login screen appears and that a user can log in and begin using the software.

Forcing the IIS file copy process after an update 

When installed, the IIS service copies a series of files locally but monitors the production folder to re-copy the files when an update is applied. It usually takes about a minute or so after the Deacom eCommerce updater finishes for the files to propagate to the service. If, after an update is applied, the service does not copy the files from the Deacom eCommerce directory to the service directory chosen in the wizard, follow the steps below to force the copy process.

  1. Locate the service directory that was chosen in the service installer.
  2. Ensure the service user picked in the installer has write access to this directory. This user needs to be a user that can elevate programs to administrator rights, so it can self-update.
  3. Copy the Deacom.eCommerce.Service.Updater.exe program from the Deacom eCommerce production folder and paste in the service directory from step 1.
  4. Right-click on the executable from the service directory and select "Run as administrator". Once all files are copies, the service will launch.

Configuring security and external access

Obtaining an SSL certificate

While Deacom eCommerce does not require encryption, if secured access is desired or necessary, customers will need to buy and install a secure certificate on the server. An SSL Certificate may be obtained in order to support an SSL Encrypted Connection (https). To do this, customers need to first get an unmodified IIS installation set up with an SSL certificate. HTTPS traffic runs on port 443 so customers will also need to set up a website in IIS listening for https on that port. Next, make a web application pointing at the /IISAdapter folder in the Deacom eCommerce application folder on the same server that is running the eCommerce Services. The IIS Adapter will find the running eCommerce Services on the server and automatically start routing the traffic through itself. Users can then navigate to https://<yourIISDEACOMSite>.com and get a fully encrypted connection.

Configuring access for external users

The process for configuring the Deacom eCommerce Services for outside access involves the use of port forwarding. This is only necessary if external users should be able to use the Deacom eCommerce environment. Port forwarding allows remote computers, computers on the Internet for example, to connect to a specific computer or service within a private local area network. Customers should consult their internal IT resources for specific details on setting up port forwarding at their location(s).

When configuring port forwarding, network administrators will usually set aside one port number on the gateway for the exclusive use of communicating with a service in the private network, located on a specific host. External hosts must know this port number and the address of the gateway to communicate with the network-internal service. Often, the port numbers of well-known Internet services, such as port number 80 for web services (HTTP) or port number 443 for secured web services (HTTPS), are used in port forwarding, so that common Internet services may be implemented on hosts within private networks.

Establishing a DNS site name

Generally, customers will work with their web service provider to establish a site name. A domain name is not required when attempting to establish a site name; Instead a sub-domain may be set up that uses a DNS record pointing to the router's IP. A router is generally configured with an external IP that it uses to communicate to the rest of the internet. The server behind the router has an internal IP and the web server is listening on a certain port. The port forward needs to exist so that when the router is contacted on that port, the router knows to forward that traffic to the server which exists behind the router. When that is set up, outside customers can connect via IP. A sub-domain on their current site may be configured that uses a DNS record pointing at the router's IP. Something like "deacom.abccompany.com" for example. Specifically, the customer will need to add a record on the DNS server to resolve "deacom.abccompany.com" to the external IP address.

UI Installer

Upon receiving the build completion email, there will be an eCommerce UI installer exe in the FTP folder, from there you will want to do the following.

  1. Run the installer on the desired server/computer it will be installed on.
  2. Once ran, the installer will prompt for a location. Its default location will be in the Program Files folder.
  3. If the machine the UI is being installed on does not have the .NET Web Hosting bundle, there will be a prompt asking you to install it and take you through the process, using the official Microsoft .NET installer. If this does occur the UI will continue installing alongside the hosting bundle.
  4. Once the install is done, the website itself will be installed at the location chosen through the installer.

FAQs & Diagnostic Tips

I'm getting an HTTP Error 502.5 - Process Failure message.

The message is caused by the Application Pool user not having enough permissions to access the application folder. To correct the message take the following steps.

  1. Open the Internet Information Services (IIS) Manager.
  2. Expand the tree on the left to the Application Pool node.
  3. Highlight the row for the Application Pool associated with the front end application.
  4. In the right-hand panel, click the Advanced Settings link under the Edit Application Pool header.
  5. Click on Process Model > Identity to highlight it.
  6. Click the '...' button to open an sub-menu to change the identity.
  7. Keep the Built-in account selected and choose the 'Local System' user from the dropdown menu.
  8. Click OK to apply the changes on the Application Pool Identity form and the Advanced Settings form.
  9. In the right-hand panel under the Application Pool Tasks stop then start the application pool.
    1. If you start the application pool too quickly after stopping it IIS will throw an error. Simply wait an extra moment and start the application pool again.

When pinging the Deacom IIS Adapter, the page stalls with a “connection reset” error. The Windows Event Viewer shows an error in “w3wp.exe” with a return code of “0XC0000005”

The message is caused by a permission error when the Application Pool attempts to access the IIS Adapter. 

  1. Open the Internet Information Services (IIS) Manager.
  2. In the tree on the left, expand the Sites node to display your eCommerce site. This site should contain the IIS Adapter as a virtual application.
  3. Navigate to the virtual application for the IIS Adapter in the list, and highlight it.
  4. Click “Edit Permissions” in the right sidebar on the IIS Adapter.
  5. In the new popup Properties menu, navigate to the Security tab and click the “Edit…” button.
  6. In this menu, click “Add”.
  7. Click “Locations…” and select the current local PC in the list. Then click OK.
  8. In the box titled “Enter the object names to select”, enter “IIS AppPool\<YourApplicationPoolName>”, replacing <YourApplicationPoolName> with the name of the Application Pool that the IIS website is running on.
  9. Click “Check Names”, then OK.
  10. Sufficient permissions have now been granted to allow the IIS website to access the IIS Adapter. No errors should occur when pinging the Deacom IIS Adapter anymore.