By default, Flynet Designer for Web Services creates a virtual folder for the generated web service in Microsoft Internet Information Services (IIS). We have had several organisations ask us if it was possible to run the web services in something else.
The Flynet generated web services are written for ASP.NET, and therefore need the Microsoft .NET Framework to run. It is possible to use Apache web server to host ASP.NET web services using the Apache mod-aspdotnet for Apache servers running on Windows.
People have asked us if the web services could run on alternative platforms such as Linux with the help of Mono, the cross platform, open source .NET development framework. Along with the generated web service, you need the Flynet CAL Manager to manage concurrent access. This runs as a Windows service, and we have not investigated whether this is possible or not. Perhaps this is an article for the future?
You can generate a Flynet Web Service without having Microsoft IIS installed by deselecting the ‘Register Web Service with IIS’ option in the ‘Web Service’ tab of the Flynet Designer for Web Services.
We assume that you have already downloaded, installed and configured the Apache web server successfully. You then need to download and install mod-aspdotnet.
The Apache httpd.conf file needs modifying to serve the Flynet generated web services. In this example, we assume that you have generated your Flynet web service to C:/Test/WebSites/TestWebService and that we shall be registering it in Apache to that it appears as http://<machinename>/TestWebService. Also, in Apache, note that folders are separated with a forward slash (UNIX style), rather than Windows backwards slash.
Apache httpd.conf
<IfModule mod_aspdotnet.cpp>
# Mount the Web Service application
AspNetMount /TestWebService "C:/Test/WebSites/TestWebService"
# Map all requests for /TestWebService to the Web Service application files
Alias /TestWebService "C:/Test/WebSites/TestWebService"
# Allow asp.net scripts to be executed in the Web Service application
<Directory "C:/Test/WebSites/TestWebService">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex Default.htm Default.aspx
</Directory>
# For all virtual ASP.NET webs, we need the aspnet_client files
# to serve the client-side helper scripts.
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) \
"C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"
<Directory \
"C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
</IfModule>