|
<< 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:
var request = WebRequest.CreateHttp(pResourcePath);
request.ContentType = "application/json";
request.Method = pMethod;
request.ServicePoint.Expect100Continue = false; // <-- diese Zeile ergänzen
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.