Dokumentation contentXXL CMS Version 5.2

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 Diskussion der einzelnen Abschnitte einschließlich der sicherheitsrelevanten Einstellungen, finden Sie im Partner- & Supportportal.
 

  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">
   </add></add></protocols>
   </webservices>

   <pages enableeventvalidation="false" enableviewstatemac="false" smartnavigation="false" validaterequest="false">
   <globalization fileencoding="utf-8" requestencoding="utf-8" responseencoding="utf-8">
   <customerrors mode="On">
   <compilation debug="false" tempdirectory="D:\temp\">
   <httpruntime executiontimeout="900000" maxrequestlength="80000" usefullyqualifiedredirecturl="true">
   </httpruntime></compilation></customerrors></globalization></pages></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 müssen angepasst werden.

basedir

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

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
Web-/Applicationserver annimmt.

Enablecache

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

cachetimeout

Definiert die Zeitdauer des standardmäßigen Verbleibens eines Objektes im Datencache falls ausreichend Speicher vorhanden ist. Für dieses Leistungsmerkmal gibt es weitere Einstellungen (s.u.)

x_workflowsender

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

denyfiletype

Ü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 geladen werden kann.

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

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

 

Erweiterte Konfiguration

Hinweis: Für speziellen Bedarf


portaldatadir

Hier kann ein abweichender Pfad zum Datenverzeichnis angegeben werden. Beispielsweise kann für hochverfügbare Konfigurationen über einen UNC Pfad ein von mehreren Servern gemeinsam benutztes Verzeichnis angegeben werden, z.B. „\\Secure\Share\live“.

 

webservice section (protocols: httpget and httppost) Diese Einstellung wird für RSS Ausgabe über Webservice benutzt.

baseurlmapping

Ermöglicht es, eine interne IP-Adresse des Web-Servers an eine WWW Domain zu binden.

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.

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 können Sie das Streaming deaktivieren.

idendity impersonate

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

http handlers section

Dieser Bereich wird verwendet, um HTTP-Handler anzugeben, beispielsweise für den Cache-Warmup.

GCMinCollectDelay

Kann verwendet werden, um Optionen für den .NET Garbage Collector zu aktivieren. Dies führte in früheren Framework Versionen zu einer verbesserten Speichernutzung. Für .NET 3.5 ist diese Einstellung nicht mehr erforderlich.

GCMaxGeneration

Kann verwendet werden, um Optionen für den .NET Garbage Collector zu aktivieren. Dies führte in früheren Framework Versionen zu einer verbesserten Speichernutzung. Für .NET 3.5 ist diese Einstellung nicht mehr erforderlich.

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.

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

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

1. Web Service 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 Event Log geschrieben werden

Wenn Sie diesen Key „<add key="ShowException" value="true" />" in Ihrer web.config setzten, unter der Gruppe: „Appsettings", werden alle auftretenden Fehler die von contentXXL abgefangen werden, auf Ihrer Webseite in den HTML Quellcode hineingeschrieben, bevor das HTML Element geschlossen wird.

Ab dem Build 2698 ist es möglich, alle auftretenden Fehler auf der Webseite 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 die .exe 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: Global.asax.vb - " & ex.Message.ToString() & Environment.NewLine & ex.StackTrace)
end try

Maximale Upload File Größe IIS 7.x

Wenn Sie Dateien, die eine bestimmte dateigröße überschreiten, nicht hochladen können, dann 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>