XSP - Mono ASP.NET Web Server (xsp4 and xsp42)
xsp4 [options]
or
mod-mono-server [options]
or
fastcgi-mono-server [options]
XSP, mod-mono-server and fastcgi-mono-server are hosts for
ASP.NET-based applications.
If run as `xsp4', the process provides a minimalistic web server
which hosts the ASP.NET runtime and can be used to test and debug web
applications that use the System.Web facilities in Mono. This server is most
convenient for testing and running small sites, does not offer everything a
production web server offers.
`mod-mono-server' and 'fastcgi-mono-server' are both ASP.NET
runtimes hosts that can communicate with another web server (at the time of
this writing, Apache 1.3-2.2 were supported through mod_mono and several
other web servers through FastCGI). This mechanism is better used for
high-traffic servers or production systems, since it can integrate with the
main HTTP server and leverage all of the optimizations and extensions of an
existing server, while providing the ASP.NET runtime. You can choose the
communication channel used between mod_mono and mod-mono-server. If you
provide a --filename option, a unix socket is used, otherwise you can give
--port to use a TCP socket.
- --address
addr
- Sets the IP address to listen on. By default it's 0.0.0.0 for xsp4 and
127.0.0.1 for mod-mono-server. AppSettings key name:
MonoServerAddress
- --port PORT
- Changes the default port where the XSP server will listen to requests. By
default XSP listens on port 8080 and mod-mono-server has no default.
AppSettings key name: MonoServerPort
- --backlog
N
- The backlog of connections to set on the listener socket. By default the
value is set to 500.
- --minThreads
N
- The minimum number of threads the threadpool allocates. Increase this
value to better handle the sudden arrival of connections. The default
value is determined by the mono runtime.
- --filename file
(mod-mono-server and fastcgi-mono-server)
- The unix socket file name to listen on. Default value:
/tmp/mod_mono_server (fastcgi-mono-server: /tmp/fastcgi-mono-server)
AppSettings key name: UnixSocketFileName (fastcgi-mono-server:
MonoUnixSocket)
- --root PATH
- The root directory for XSP. The default is the directory where XSP is
executed. The current directory will be changed to this one before
creating any application. AppSettings key name: MonoServerRootDir
- --appconfigfile
FILENAME
- Adds application definitions from the XML configuration file. See sample
configuration file that comes with the server (sample.webapp) and
WEBAPP FILE FORMAT below. AppSettings key name:
MonoApplicationsConfigFile
- --appconfigdir
DIR
- Adds application definitions from all XML files found in the specified
directory DIR. Files must have '.webapp' extension. AppSettings key name:
MonoApplicationsConfigDir
- --applications
APPS
- A comma separated list of virtual directory and real directory for all the
applications we want to manage with this server. The virtual and real
dirs. are separated by a colon. The default value is '/:.'.
- Some examples:
- '/:.'
- The virtual / is mapped to the current directory.
- '/blog:../myblog'
- The virtual /blog is mapped to ../myblog
- '/:.,/blog:../myblog'
- Two applications like the above ones are handled.
- myhost.someprovider.net:/blog:../myblog
- The virtual /blog at myhost.someprovider.net is mapped to ../myblog.
- --master
- This instance will be used to
by mod_mono to create ASP.NET
- applications on demand. If this option is provided, there is no need to
provide a list of applications to start. This applies only to
mod-mono-server.exe. --nonstop By default xsp4/mod-mono-server will
stop processing requests when the return key is pressed. Use this to avoid
this behavior.
- --no-hidden
- Do not protect hidden files/directories from being accessed by clients.
Hidden files/directories are those with Hidden attribute on Windows and
whose name starts with a dot on Unix. Any file/directory below a hidden
directory is inacessible. This option turns the default behavior of
protecting such locations off. If your application does not contain any
hidden files/directories, you might want to use this option as the
checking process has a per-request cost. AppSettings key name:
MonoServerCheckHiddenFiles (a boolean accepting 'true' or 'false')
- --https
- Enables HTTPS support on the server, you must supply an X.509 certificate
and a private key with either the --cert/--pkfile options or with the
--p12file (which combines both the certificate and the private key into a
single file).
- To use you must first create an
X.509 certificate for your server, for
- example:
$ makecert -r -eku 1.3.6.1.5.5.7.3.1 -n "CN=server" -p12 server.p12 s3kr3t
Mono MakeCert - version 1.1.9.0
X.509 Certificate Builder
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2005 Novell. BSD licensed.
Success
- Then you must pass the
following flags to xsp4:
-
$ xsp4 --https --p12file server.p12 --pkpwd s3kr3t
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --https-client-accept
- Like --https this enables HTTPS support on the server. However this option
also send an "invitation" to clients to provide
client-certificates to authenticate themselves. Client are free to
provide, or not, a client certificate. Web application can detect if a
client certificate is used and react accordingly. Most web browser will
not send a client certificate unless they have been explicitly requested
to do so.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --https-client-require
- Like --https this enables HTTPS support on the server. However this option
also requires clients to use client-certificates to authenticate
themselves. Client who do not provide client certificates will receive an
error. Note that client may send an empty certificate structure so web
application should check the certificate content.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --p12file
FILENAME
- Used to specify the PKCS#12 file to use. This file includes both the X.509
certificate and the private key required to encrypt the HTTP traffic.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --cert
FILENAME
- Used to specify the server X.509 certificate file. This is normally used
with the --pkfile.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --pkfile
FILENAME
- Used to specify the path to the private keyfile. The PVK format isn't very
secure and you should use the PKCS#12 format (--p12file option) to store
new private keys.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --pkpwd
PASSWORD
- If your private key is password protected, PASSWORD is the password used
to decote the private key. This option works for both PVK and PKCS#12
formats.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --protocol
PROTOCOL
- Specifies which protocols are available for encrypting the communications.
The possible values are Default, Tls and Ssl3. Ssl2 isn't
supported. The default value is "Default" which auto-detect
the client protocol and adjust the server protocol accordingly.
This option is only valid for XSP. For mod_mono you should
configure Apache for SSL/TLS.
- --terminate
(mod-mono-server only)
- Gracefully terminates a running mod-mono-server instance. All other
options but --filename or --address and --port are ignored if this option
is provided.
- --version
- Displays version information and exits.
- --help
- Shows the list of options and exits.
- --verbose
- Prints extra messages. Useful for debugging.
- --pidfile
FILE
- Writes the xsp4 PID to the specified file.
xsp4 and xsp42 are scripts that call mono. If you want to pass
options to mono (for example, options to get line numbers in stack traces),
you can use the MONO_OPTIONS environment variable when invoking xsp4 or
xsp42.
For example:
$ MONO_OPTIONS=--debug xsp42
You can choose which files are considered as index using
xsp4.exe.config configuration file like this:
<appSettings>
<add key="MonoServerDefaultIndexFiles"
value="index.aspx" />
</appSettings>
By default, it has index.aspx, Default.aspx, default.aspx,
index.html and index.htm. The order matters.
The format of the .webapp files used for --appconfigfile and
--appconfigdir is:
<apps>
<web-application>
<name>{appname}</name>
<vhost>{virtual host for application}</vhost>
<vport>{port for the application}</vport>
<vpath>{virtual directory in apache}</vpath>
<path>{physical path to aspx files}</path>
<!-- <enabled> is true by default -->
<enabled>{true|false}</enabled>
</web-application>
</apps>
You can include any number of <web-application> nodes, one
per ASP.NET application to run.
There's a sample.webapp file in the XSP samples
directory.
The Mono XSP server was written by Gonzalo Paniagua Javier
(gonzalo@ximian.com). Fastcgi-mono-server was written by Brian Nickel
<http://kerrick.wordpress.com>.
- MONO_ASPNET_NODELETE
- If set to any value, temporary source files generated by ASP.NET support
classes will not be removed. They will be kept in the user's temporary
directory.
- Web.config,
web.config
- ASP.NET applications are configured through these files, the configuration
is done on a per-directory basis. For more information on this subject see
the http://www.mono-project.com/Config_system.web page.
The Mono project (http://www.go-mono.com) is a collaborative
effort led by Novell (http://www.novell.com) to implement an open source
version of the .NET Framework.
Mailing lists are listed at the
http://www.mono-project.com/Mailing_Lists