I³M
Server
Introduction
This is the server part of the project. This project was born at University
of Applied Sciences in Konstanz Germany.
Hier you can learn about the server and how to bring it to life.
Things you need
- A Windows PC with .NET.
- Win2000 - tested
- WinXP/WinXP Professional - tested
- Win2003 Server - tested
- WinMe (?)
- cvs-client - there are no binaries released
- e.g. TortoiseCVS (my favorite ;-)
- SharpDevelop found at sourceforge.net. Can be easily ported to other
IDE's, but you have to port it again and again as we change something in
our project or do the changes manually by yourself.
- Webserver MS IIS 5 or cassini (see below)
Things nice to have
- Knowledge about c#, asp.net and web services
- MS-Access - since we are using acess db and it is a realy good thing
to have an admin gui for the database
Setting up the envirement
If not already done, install the .NET Envirement. The needed things you can
find at www.microsoft.com/downloads.
At least you need the .NET-runtime (dotnetfx.exe about 20MB). If you are
a developer it is advisible to install the .NET-SDK too (more then 100MB).
If you don't have any cvs-client you can try TortoiseCVS (http://www.tortoisecvs.org/). It's
nice and simple in use.
As a none developer you would use the anonymous cvs access:
With a command line client:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/i3m
login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/i3m
co i3mserver
With TortoiseCVS:
Use the windows explorer to choose the directory where
the source code should be copied in, for example c:\MyProjects\.
Right click in the explorer window should bring a usual
popup menu with two two additional cvs entries: Choose "CVS Checkout".
As protocol choose "Password server (:pserver)"
without " "
As server "cvs.sourceforge.net"
As repository folder "/cvsroot/i3m"
As User name "anonymous"
And at least the Module "i3mserver"
Now in CVSROOT: line you should see ":pserver:anonymous@cvs.sourceforge.net:/cvsroot/i3m".
Besides, it is enough to copy and paste this into CVSROOT: line to fill out
all needed fields except module name ;-).
Click OK and wait. Now you should see a window with green file names that
are downloaded. If ready, click OK.
NOW you have all project files on your harddisk and need the SharpDevelop
found at http://sourceforge.net/projects/sharpdevelop/.
Take the latest release (at this time it's 0.98). Install if not already
done.
Go into project directory as example above it would be c:\MyProjects\i3mserver
Doubleclick on I3MNamespace.cmbx. SharpDevelop should start. Sorry
for german source code comments, someday they would be changed to english.
Go to menu Project/Project Options. Choose Configurations.
Then Debug for debugging version (slow) or Release (faster).
Next go to Output and set Output Path for the compiled assembly.
It is usually the source code directory pluss bin/debug or bin/release, but
you can set it to other destination.
Open I3M.cs at line 24 you would find this:
[WebService(Namespace="http://webserv2.fh-konstanz.de/i3m/")]
If you are using IIS, than you should change this namespace to your
lacation, for example [WebService(Namespace="http://192.168.0.2/i3m/")]. I've experienced some
trouble to access the application if i did not changed it.
Open Dispatcher.cs and look for the line 82 in constructor
InitUserAdministration(false);
if it is true, change it to false (explanations for this you would find farther
in text).
Compile the project :Run/Build Combine
Create a new directory for the web application, let's take for example c:\i3mserver.
In there create two new subdirectories bin for web application and
db for the database. The bin directory must have the name bin. For
the database you can choose your own directory.
Now copy following files from c:\MyProjects\i3mserver\ASP:NET\gui into c:\i3mserver
:
- global.asax
- i3m.asmx
- I3MServer.config
- web.config
Copy the compiled assembly I3MNamespace.dll into c:\i3mserver\bin.
If you want to debug the application, you should copy the symbol file I3MNamespace.pdb
too.
The last file to copy is the database i3m.mdb from c:\MyProjects\i3mserver\ASP:NET\db
into c:\i3mserver\db
Open I3MServer.config with a text editor and search for <Entry
key="DBPath" value="D:\FH\Projekt\... i3m.mdb"/>. change value to your
location of the i3m.mdb. Save.
Since I don't have IIS, I could not explain how to set it up. The only thing
I remember is that you create a virtual directory and set it to location
where i3m.asmx is in our example c:\i3mserver
Cassini is a Microsoft Web Server example. It is not a fully functioning
web server! It has no support, no ftp, no cgi and no security options.
But it is able to run an ASP.NET application and it's for free. It is only
for testing of your web applications and not for the real use.
But if you want/have to use Cassini, get source code from www.asp.net (http://www.asp.net/Projects/Cassini/Download/).
It is easy to compile. The only thing to do is to start build.bat.
Beware, Cassini is answering the requests only from the same PC. There is
a restriction in the source code. If you wannt to change it, look in forum
at www.asp.net.
If you are done, you can start Cassini. To make it easier, create a run.bat
file in cassini directory. Open file and write
CassiniWebServer
c:\i3mserver 80 /
Save, and start it. Now you should see Cassini-window.
In the web browser type in "http://localhost". You should see the
contents of c:\i3mserver. Click on i3m.asmx. At this moment asp.net
creates a test for you, so it brings all methodes of the web service on the
screen. Search for getVersion and click it. Next click on Invoke
button, Then you should see following:
<?xml version="1.0" encoding="utf-8"
?>
<string xmlns="http://webserv2.fh-konstanz.de/i3m/">0.1a</string>
or something like that. The other methods would not work because that need
login. Thats why you need the client to test if the web application realay
works.