Dokumentation contentXXL CMS Version 5.3

EINRICHTEN DER WEB.CONFIG

Die Datei web.config ist eine XML-basierte Datei, die alle Einstellungen für eine Web-Applikation beinhaltet. Eine Beispieldatei befindet sich unter dem Namen web.config.template im Wurzelverzeichnis der Distribution, z.B. D:\contentXXL\live\. Die web.config muss für die spezifischen Anforderungen angepasst werden.

Eine detaillierte Vorlage mit Erklärungen finden Sie im Basis-Verzeichnis jeder contentXXL-Installation unter dem Dateinamen web.config.net-v4.5.template.

  Musterkonfigutation

<configuration>

<!-- application specific settings -->
<appSettings>
   <add key="connectionString" value="server=127.0.0.1;uid=12;pwd=345;database=contentxxl;" />
   <add key="basedir" value="d:\contentxxl\" />
   <add key="mailServer" value="127.0.0.1" />
   <add key="denyfiletypes" value=".exe;.aspx;.ascx;.dll;.asmx;.asp;.php" />
   <add key="EnableCache" value="True" />
   <add key="CacheTimeout" value="600" />
   <add key="ShowException" value="False" />
   <add key="1_workflowsender" value="tasks@local" />
</appSettings>

<system.web>
   <webServices>
     <protocols>
      	<add name="HttpGet">
        <add name="HttpPost">
      </protocols>
    </webServices>
    <pages enableEventValidation="true" enableViewStateMac="true" validateRequest="true" controlRenderingCompatibilityVersion="4.5"/>
    <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" />
    <customErrors mode="On" />
    <compilation targetFramework="4.5" debug="false" />
    <httpRuntime targetFramework="4.5" executionTimeout="900000" maxRequestLength="8000000" useFullyQualifiedRedirectUrl="true" />
</system.web>

</configuration>

Basiskonfigutation

Hinweis: Diese Einstellungen müssen getroffen werden

connectionString

Die IP Adresse oder der Netzwerkname des SQL Servers, Benutzername und Kennwort, Name der
Datenbank.

basedir

Hier wird der Pfad zum Verzeichnis mit der Codebase angegeben, z.B. „D:\contentXXL\live” eingetragen.

mailServer

Hier wird die Adresse des SMTP-Servers angegeben. Dieser Eintrag wird von allen mailbasierenden Funktionen verwendet. Es kann ein lokal installierter SMTP Service benutzt werden, ggf. auch ein bereits existierender Mailserver. Bitte stellen Sie sicher, dass der SMTP-Service e-Mails vom Webserver annimmt (Relay).

EnableCache

Aktiviert / deaktiviert den Daten-Cache. Es wird nicht empfohlen, den Datenchache auszuschalten.

CachetTimeout

Definiert die Zeitdauer des standardmäßigen Verbleibens eines Objektes im Datencache, falls ausreichend Speicher vorhanden ist.

x_workflowsender

Dieser Eintrag legt die Senderadresse fest, unter der Erinnerungen im Rahmen von Aufgaben oder beim
Workflow gesendet werden. Dieser Eintrag muss portalabhängig gesetzt werden. x ist dabei die
PortalID, z.B. 1_workflowsender oder 3_workflowsender für Portal 1 bzw. 3.

denyfiletypes

Über diesen Eintrag können bestimmte Dateitypen vom Upload ausgeschlossen werden, z.B. aus
Sicherheitsgründen. Geben Sie die Dateiendungen getrennt durch Semikolon an.

httpRuntime -> maxRequestLength

Dieser Wert limitiert die maximale Größe einer Datei in KB, die mit dem Ressourcen-Manager hochgeladen werden kann.

globalization section (requestEncoding, responseEncoding, fileEncoding)
Hier wird die Encodierung für Requests, Responses und Dateien gesetzt.

pages section (validateRequest, enableEventValidation, enableViewStateMac)
Hier werden einige sicherheitsrelevante Einstellungen für ASP.NET getroffen.

customErrors

Hier wird bestimmt, ob dem Benutzer detaillierte Fehlermeldungen angezeigt werden sollen (On) oder nur allgemeine (Off). In einer Produktivumgebung ist es ein Sicherheitsrisiko, detaillierte Fehlermeldungen auszugeben.

 

Erweiterte Konfiguration

Hinweis: Für speziellen Bedarf (falls nicht anders angegeben, im Abschnitt "appSettings").


portaldatadir

Falls das Portaldata-Verzeichnis (dieses enthält alle kundenspezifischen Dateien) nicht im Ordner der Codebasis liegt, ist hier ein Eintrag zu machen (z.B. ein UNC-Pfad auf ein von mehreren Servern gemeinsam benutztes Verzeichnis. In diesem Fall muss auch ein virtuelles Verzeichnis "portaldata" am IIS eingerichtet werden, das auf diesen Ordner zeigt).

<add key="portaldatadir" value="\\Secure\Share\live\portaldata\" />

baseurlmapping

Ermöglicht es, eine interne IP-Adresse des Web-Servers an eine WWW-Domain zu binden (Reverse Proxy). Diese Einstellung ist obsolet. Machen Sie, falls nötig, Einträge in der Datenbanktabelle "baseurlmapping".

logrobotvisits

Über diesen Eintrag kann ein Logging für Suchmaschinen in der Tabelle „robotsvisit” aktiviert werden. Dies kann helfen, mögliche Problemfälle zu analysieren. Es kann jedoch auch die Performance der Anwendung verringern und vergrößert die Datenbank.

<add key="logrobotvisits" value="false" />

streamresource

Dateien können über diesen Eintrag optional auch per Streaming zum Browserclient übertragen werden. Einige Firewalls behandeln dieses Verfahren jedoch möglicherweise nicht korrekt, so dass u.U. Probleme bei der Anzeige von Bildern und Dokumenten auftreten können. In diesem Fall müssten Sie das Streaming deaktivieren.

<add key="streamresource" value="false" />

idendity section (impersonate,  userName, password)

Dieser Eintrag kann verwendet werden, um ASP.NET unter einer bestimmten Benutzerkonto laufen zu lassen, z.B. erforderlich für Hochverfügbarkeits-Konfigurationen.

<system.web>
    <identity impersonate="true" userName="myDomainUser" password="myPassword" />
</system web>

defaultProxy section

In einigen IT-Umgebungen soll der contentXXL Server keine externen Daten direkt empfangen, sondern z.B. aus Sicherheitsgründen eine Firewall verwenden. Dies kann in diesem Abschnitt konfiguriert werden Ein Beispiel finden Sie unter https://msdn.microsoft.com/de-de/library/kd3cf2ex(v=vs.110).aspx

defaultcategorymask

Definiert eine Standard-Abfrage beim Öffnen des Kategorie-Managers. Mit "*" wird nach allen Kategorien gesucht.

 <add key="defaultcategorymask" value="*" />

maintenanceurl

Wenn aktiviert, wird der Benutzer auf die angegebene Baustellenseite umgeleitet.

<add key="maintenanceurl" value="maintenance.html" />

UseNamedUrls

Sollen NamedUrls verwendet werden, ist hier der Wert "IIS7" einzutragen. Dies aktiviert die entsprechenden Bereiche im Sitemanager zur Dateneingabe. 

HideAuthorMetaTag

Wenn auf "True" gesetzt, wird im HTML-Quellcode in der Einzelansicht von Objekten der Name des Autors nicht ausgegeben.

<add key="HideAuthorMetaTag" value="False" />

importcategories

In einer Installation mit mehreren Portalen kann der Kategoriebaum des hier angegebenen Portals in anderen Portalen verwendet werden.

<add key="importcategories" value="1" />

editimagequality

Hier kann ein Wert von 1 (minimale Qualität) bis 10 (maximale Qualität) bei der Bildbearbeitung eingestellt werden.

<add key="editimagequality" value="10"/>

iptocountry

Aktiviert die IPToCountry-Funktionalität, wobei aus der IP-Nummer des Benutzers die regionale Herkunft ermittelt wird. Näheres finden Sie hier.

<add key="iptocountry" value="true"/>

workflow_nopublishworkflow

Hier kann der Veröffentlichungs-Workflow (Änderung des Veröffentlichungszeitraums, Aufheben der Veröffentlichung) bei weiterhin aktivem Freigabeworkflow ausgeschaltet werden.

<add key="workflow_nopublishworkflow" value="true"/>

spellchecker

Deaktiviert die Rechtschreibprüfung im WYSIWYG-Editor.

<add key="spellchecker" value="false"/>

Konfiguration für das Site-Edit (ab Version 5.1)

Um die Site-Edit Features ab Release 5.1 lauffähig zu machen, muss die Web.config angepasst werden.

1. Webservice Aufrufe erlauben
<system.web>
   <webServices>
      <protocols>
         <add name="HttpGet" />
         <add name="HttpPost" />
      </protocols>
   </webServices>
</system.web>
2. JSON-Serialisierungslänge muss auf 5MB konfiguriert werden.
<system.web.extensions>
   <scripting>
      <webServices>
          <jsonSerialization maxJsonLength="50000000"/>
      </webServices>
   </scripting>
</system.web.extensions> 

 

Webservices

Durch diese Einträge werden Webservices freigeschaltet. Diese werden z.B. für RSS-Feeds benötigt:

<webServices>
   <protocols>
      <add name="HttpGet"/>
      <add name="HttpPost"/>
   </protocols>
</webServices>

 

Exceptions können in ein spezielles contentXXL-Eventlog geschrieben werden

Wenn Sie diesen Key „<add key="ShowException" value="true" />" in Ihrer web.config setzten (im Abschnitt „appSettings"), werden alle Ausnahmefehler,  die von contentXXL in try-catch-Blocks abgefangen werden, auf Ihrer Webseite im HTML Quellcode ausgegeben. In einer Produktivumgebung ist das ein Sicherheitsrisiko.

Es ist daher möglich, alle auftretenden Fehler in die Windows-Ereignisanzeige zu schreiben.

Hierfür müssen Sie 2 Dinge tun:

  1.  Erstellen Sie das contentXXL Eventlog, indem Sie in den Ordner „portaladmin" gehen und dort mit Administratorberechtigung die Datei „EventLogCreation.exe" ausführen.
  2. Fügen Sie in Ihrer web.config den Key „<add key="WriteExceptionToEventLog" value="true" />" hinzu.

Wenn Sie eigenene Code schreiben:
Um unbehandelte Fehler abzufangen und in das Eventlog zu schreiben, können Sie folgende Zeile verwenden:

contentXXL.Runtime.Helpers.ExceptionHelper.WriteException(ByVal ex As String, Optional ByVal LogType As EventLogEntryType = EventLogEntryType.Information).

Der beste Weg ist ein Try-Catchblock wie im folgenden Beispiel:

Try
...Ihr Quellcode
catch ex as exception
ExceptionHelper.WriteException("ERROR:  " & ex.Message.ToString() & Environment.NewLine & ex.StackTrace)
end try

Die hier auflaufenden Meldungen können auch im Sitemanager abgerufen werden (Menü "Monitoring" unter "Administratoren".

Maximale Größe beim Dateiupload

Wenn Sie Dateien, die eine bestimmte Dateigröße überschreiten, nicht hochladen können, sollten Sie nachfolgende Einträge in der web.config überprüfen:

 

<system.web>
<httpRuntime executionTimeout="120000000" maxRequestLength="2097151" useFullyQualifiedRedirectUrl="true" />
</system.web>

ExecutionTimeout: Gibt die maximale Anzahl eines Requests in Sekunden an, bis er durch ASP.NET automatisch beendet wird.

maxRequestLength: Gibt den Grenzwert für die Dateigröße in KB an. Dieses Limit kann verwendet werden Dateigrößen zu beschränken die durch Anwender auf den Server geladen werden.

UseFullyQualifiedRedirectUrl: Gibt an, ob clientseitige Umleitungen mit URLs wie "http://server/path" voll qualifiziert sind, die für einige mobile Steuerelemente erforderlich sind, oder ob relative Umleitungen an den Client gesendet werden. Wenn „true“, werden alle Umleitungen, die nicht voll qualifiziert sind, automatisch vervollständigt

Die angegebenen Werte sind nur ein Beispiel.


Und auch:

 

<system.webServer>
<security>
<requestFiltering>

Setzt die max. ContentLength für Fileuploads, weitere Informationen:

http://msdn.microsoft.com/en-us/library/ms689462% 28V = VS.90% 29.aspx

<requestLimits maxAllowedContentLength="1048576000" />
</ requestFiltering>
</ security>
</ system.webServer>

Die angegebenen Werte sind nur ein Beispiel.

LinguLab (Prüfung der LinguLab-Benutzer)

Der Punkt muss vor dem Ende des: </configuration> stehen.

 

<system.serviceModel>
   <bindings>
      <basicHttpBinding>
         <binding name="LiveServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
         <readerQuotas maxDepth="32" maxStringContentLength="65536" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
         <security mode="None">
             <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
             <message clientCredentialType="UserName" algorithmSuite="Default" />
         </security>
         </binding>
      </basicHttpBinding>
   </bindings>
   <client>
      <endpoint address="https://api.lingulab.net/liveservice.asmx" binding="basicHttpBinding" bindingConfiguration="LiveServiceSoap" contract="api.LiveServiceSoap" name="LiveServiceSoap"  />
   </client>
</system.serviceModel>