C#, synchron

<< Click to Display Table of Contents >>

Navigation:  PUM - Runtimes >

C#, synchron

Es gibt zwei unterschiedliche synchrone C# Generatoren bzw. Runtimes.

Mit neueren Apache Varianten zeigte sich, daß in der C#-Runtime ein Problem wartete. Es war ein HTTP1.1 Feature, was das HTTP-Gemstone/S Framework nicht unterstützten. Es war das "Expect: 100-continue" - Problem.

Es offenbarte sich, wenn die Sockets mit Timeouts in der GS ausstiegen. Es konnte im Apache oder in den C# Codes gefixt werden:

C# WebRequest

 

var request = WebRequest.CreateHttp(pResourcePath);

request.ContentType = "application/json";

request.Method = pMethod;

request.ServicePoint.Expect100Continue = false;   // <-- diese Zeile ergänzen

 

Apache Fix

Oder es wurde in der Konfigurationsdatei des Apache gefixt. Hier braucht man das Header-Module, das man mittels "a2enmod headers" aktivieren musste und ein folgender Eintrag musste vorgenommen werden:

 

RequestHeader unset Expect early

 

Während der Apache bei der Verbindung des C# Client an den Apache das EXPECT berücksichtigt und auch immer bestätigt, erwingt der obige Eintrag, daß dieses Verhalten nicht zwischen Apache und Gemstone/S stattfindet und daher der Gemstone/S auch nicht ins Timeout läuft.