Web Server Support and Configuration

Web Connection supports a number of different Web Servers. Click the link for installation and configuration instructions.

  • Internet Information Server (IIS) (production, optionally dev)
    This is the built-in Windows Web Server which is typically used to run production applications on a live server but can also be used for local development. IIS is a Windows component, but it has to be explicitly enabled and configured and requires Administrative Rights to do so. IIS runs as a Windows Service and is always on.
    launch("IIS")

  • IIS Express (dev only)
    IIS Express is a small (5mb), installable version of IIS that runs as a standalone application. It doesn't use global configuration and doesn't require Administrative rights, doesn't run as a service and has to be explicitly installed and started up manually.
    launch("IISEXPRESS")

  • Web Connection Web Server (dev, optional production)
    This is a self-contained, Web Connection specific Web Server built with .NET Core, that ships as part of a Web Connection project. It's redistributable and allows you to run Web Connection applications without a Web Server installed. Like IIS Express it runs as a standalone application. This Web Server is a great choice for local development. Requires the .NET Core Runtime and the server has to be explicitly started. This server can also be hosted inside of IIS. launch("WEBCONNECTIONWEBSERVER")

  • Apache for Windows (not recommended)
    There is minimal support for Apache for Windows (2.2 & 2.4+). Web Connection provides the Apache interface modules, but configuration support for Apache is minimal meaning it requires manual configuration and Apache know-how. Not recommended but supported.

Which server is best?

It's important to note that all of the supported servers have the same operational behavior and applications will run in a similar fashion. There are no major differences in operation of applications. Rather the different servers are mainly about how the Web server is run, and what best matches your environment. It's also possible to easily switch between installed Web Servers during development using the Web Connection launch() command.

Some general recommendations:

  • IIS is used in Production Web Sites on a Windows Server
  • For local Development:
    • Web Connection Web Server or IIS Express have low system impact
      and run as Root web sites
    • IIS can also be used locally,
      useful for final compatibility testing
    • IIS is more complex to setup/maintain for local development
      as it requires a separate virtual directory or Root Web Site domain

Recommendations

Personally, I install IIS on the system and configure all new projects with it, even though I usually run my local development applications using the Web Connection Web Server.

This way IIS is configured and can be run for testing if needed, but for the bulk of development work I can use the Web Connection Web Server or IIS Express. Little more effort, but best of both worlds.

If I configure a project for IIS, I usually change the lcServerType in launch.prg to my preferred local server (ie. lcServerType="WebConnectionWebServer").

If I don't configure for IIS and later decide I need IIS, I can run <myApp>_ServerConfig.prg to configure IIS for the project.


© West Wind Technologies, 1996-2021 • Updated: 04/07/21
Comment or report problem with topic