Installation des onion.net Information Servers
1. onion.net Information Server in das Projektverzeichnis kopieren
Wechseln Sie in das aktuelle Distributionsverzeichnis und kopieren Sie den Ordner in das Information Server-Verzeichnis (in unserem Beispiel nach: c:\onion.net\services\onion.net Information Server) und benennen Sie den Ordner "Contoso", bzw. nach Ihrem Projekt. So sollten Sie nun unter "c:\onion.net\services\onion.net Information Server\contoso" die Dateien des onion.net Information Servers finden.
2. Installation des Dienstes
.NET basierte Windowsdienste werden über das Kommandozeilenprogramm installutil.exe installiert. Öffnen Sie dazu einfach eine Kommandozeile und wechseln Sie in das kopierte Verzeichnis. Sollten Sie auf dem Server nicht mit dem Administrator angemeldet sein und UAC (User Account Control) aktiviert sein, so müssen Sie die Kommandozeile als Administrator starten.
Das benötigte Programm installutil.exe befindet sich bereits auf Ihrem Rechnersystem im Verzeichnis „%WINDIR%\microsoft.net\framework\v2.0.50727\“.
Zur Installation führen Sie es mit folgenden Argumenten aus:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\installutil.exe /servicename=ONION_contoso Onion.Server.WindowsService.exe
Das Argument /servicename steuert, wie der Dienstname lauten wird. Für jede Instanz eines onion.net Information Servers muss ein eindeutiger Name vergeben werden. Wie im Kommando zu sehen, sollten Sie das Prefix ONION_ dem Projektnamen voranstellen.
Nach der Ausführung des Kommandos kann der Dienst in der Windows Dienstekonsole eingesehen werden.
Wenn gewünscht, können Sie nun den Starttyp von "Manuell" auf "Automatisch" umstellen. Wenn vorhanden (bei Windows XP bspw. nicht) sollte auf "Automatisch (Verzögerter Start)" umgestellt werden. Sollte auf dem gleichen Server der SQL Server laufen, so kann es passieren, dass der onion.net Information Server nicht startet. Grund dafür ist, dass der onion.net Information Server versucht, sich zum SQL Server zu verbinden, der jedoch noch nicht betriebsbereit ist. Beim verzögerten Start wird eine Minute gewartet, bis der onion.net Information Server gestartet wird. Bis dahin ist der SQL Server fertig.
Bevor Sie den Dienst starten, lesen Sie unten den Abschnitt Rechtemanagement.
Die Deinstallation des Dienstes erfolgt mit dem gleichen Kommando, jedoch mit dem zusätzlichem Argument /u.
3. Konfiguration des onion.net Information Servers
Im Zielverzeichnis des onion.net Information Servers befindet sich eine Konfigurationsdatei namens "Onion.Server.WindowsService.exe.config".
3.1. SQL Server Verbindung
In der Konfigurationsdatei finden Sie unter configuration/onion/server das Attribut connectionString (in der Abbildung markiert). In dieser Zeichenkette stellen Sie die Verbindungsinformationen zur Datenbank ein. Konfigurieren Sie die Datenbank (database) auf ONION_contoso und gegebenenfalls die Verbindungsinformationen zum SQL Server.
Weitere Informationen zum Thema Benutzerrechte finden Sie weiter unten im Abschnitt Rechtemanagement.
Läuft der SQL Server auf dem gleichen Server wie der onion.net Information Server, so sollte als Protokoll "Shared Memory" verwendet werden. Bei SQL Server Express ist dies auch das einzige Protokoll, welches aktiviert ist. Dieses Protokoll ist zum Einen schneller, da es nicht über die Netzwerkschnittstelle geht und zum Anderen aus Sicherheitsgründen, da der SQL Server so nicht von außen angesprochen werden kann.
Bei diesem Protokoll muss im connectionString ein weiterer Parameter "Network Library" mit dem Wert "dbmslpcn" angegeben werden. Sonst wird versucht, die Verbindung über named pipes oder TCP/IP herzustellen.
Läuft der SQL Server auf einem anderen Server, so sollte TCP/IP verwendet werden. Dazu muss das Protokoll im SQL Server aktiviert worden sein.
3.2. Caching
Die voreingestellte Konfiguration unter configuration/onion/server/cacheSettings hat ein eingestelltes Content Caching von ca. 150MB zur Entlastung des Datenbankservers. Die Einstellungen sind für den Anfang ausreichend.
3.3. Anbindung von Benutzerverzeichnissen
Sollten Sie ein LDAP oder Active Directory an onion.net anbinden wollen, so können Sie dies unter configuration/onion/userRepositories konfigurieren. Eine Beschreibung zur Anwendung finden Sie in der Konfigurationsdatei in den Kommentaren.
Möchten Sie keine Anbindung, so können Sie diesen Abschnitt so belassen, wie er ist. Als Standard (configuration/onion/userRepositories/internalDirectory) ist eine Loginsperre für die onion.net Benutzer von einer Minute, nach drei Fehllogins, eingestellt.
3.4. Dienstverfügbarkeit über .NET Remoting
Unter diesem Punkt können Sie die Bindung des Dienstes konfigurieren. Die wichtigste Einstellung bei mehreren Instanzen ist die Port-Bindung. Als Standardport ist der Port 8087 angegeben. Der angegebene Port darf nicht bereits durch eine andere Anwendung blockiert sein.
3.5. Ereignisprotokolldatei
Als Ereignisprotokollierung wird log4net verwendet. Die Konfigurationsmöglichkeiten für log4net können Sie unter log4net nachlesen.
In der Standardeinstellung wird eine Log-Datei in dem aktuellen Verzeichnis unter "logs\debug.log" erstellt. Da es in der Beispielinstallation ein Log-Verzeichnis unter "c:\onion.net" gibt, kann auch dieses Verzeichnis angegeben werden, bspw.: "c:\onion.net\logs\contoso\informationserver.log"
4. Rechtemanagement
Bei der Rechtevergabe gibt es zwei Dinge zu beachten. Windows Dienste werden mit einem Benutzerkonto gestartet. Das ist im Normalfall das Konto "Lokales System".
Möchten Sie nun den Dienst mit einem eigenen Account starten, so sind folgende Dinge zu beachten.
4.1 Schreiben von Log-Dateien
Im Normalfall ist im onion.net Information Server log4net so konfiguriert, dass es Log-Dateien erstellt. Der Dienst muss, um diese Dateien erstellen, schreiben und löschen zu können, entsprechende Rechte im Log-Verzeichnis haben.
4.2. Verbindung zum SQL Server
Eine Verbindung zum SQL Server kann über den konfigurierten Benutzer in der Konfigurationsdatei oder im Integrierten Modus mit dem Benutzeraccount, mit welchem der Dienst läuft, hergestellt werden. Möchten Sie keine Zugangsdaten in der Konfigurationsdatei speichern wollen, so können Sie den Integrierten Modus konfigurieren. Das Dienst-Benutzerkonto muss dann allerdings die Zugriffsrechte zur Datenbank erhalten.
Der Benutzer, mit dem sich zur Datenbank verbunden werden soll, muss dbowner der Datenbank sein, damit beim Start ggf. Tabellen und Stored Procedures angelegt, aktualisiert oder gelöscht werden können.
5. Den onion.net Information Server starten
Starten Sie nun den Dienst. Der erste Start dauert einen Moment, da der Dienst die nötigen Tabellen in der Datenbank anlegt sowie Schemata, Benutzer und Daten im System erstellt.
Sollte während des Starts eine Fehlermeldung erscheinen, so steht eine komkrete Fehlermeldung in der Log-Datei.