NAME
XSP - Mono ASP.NET Web Server
SYNOPSIS
mono xsp.exe [options]
or
mono mod-mono-server.exe [options]
DESCRIPTION
XSP and mod-mono-server are both hosts for
ASP.NET-based applications.
If run as `xsp', 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' is an ASP.NET runtime host that can
communicate with another web server (at the time of this writing
Apache 1.3 and Apache 2.0 were supported). 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.
OPTIONS
- --address addr
- Sets the IP address to listen on. By default it's 0.0.0.0 for
xsp 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
- --filename file (mod-mono-server only)
- The unix socket file name to listen on. Default value:
/tmp/mod_mono_server AppSettings key name: UnixSocketFileName
- --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 This applies only to
xsp.exe: by default xsp will stop processing requests when the
return key is pressed. Use this to avoid this behavior.
- --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 xsp:
-
$ xsp --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.
DEFAULT INDEX FILES
You can choose which files are
considered as index using xsp.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.
WEBAPP FILE FORMAT
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.
AUTHORS
The Mono XSP server was written by Gonzalo Paniagua
Javier (gonzalo@ximian.com).
SEE ALSO
mono(1),dbsessmgr(1),asp-state(1),
makecert(1)
For more information on creating certificates, see: http://pages.infinit.net/ctech/20050701-1048.html
System.Web, System.Web.Hosting namespaces.
http://www.asp.net is
Microsoft's official site for ASP.NET
MORE INFORMATION
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.