.net-remoting

___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123remoting ___ .NET Remoting ist eine Microsoft-Anwendungsprogrammierschnittstelle (API) für die Interprozesskommunikation, die 2002 mit der 1.0-Version von .NET Framework veröffentlicht wurde. ___ qstnhdr ___ Was verursacht "Tcp-Kanalprotokollverletzung erwartet Präambel" in .NET Remoting? ___ qstntxt ___

Ich habe eine verteilte Anwendung, die .NET Remoting in einem hausinternen Gigabit-Netzwerk verwendet. Es gibt einen einzelnen Server und über ein Dutzend Clients, die eine Verbindung zum Server herstellen. Die Clients führen mehrere Threads aus, und von jedem Client können bis zu 10 gleichzeitige Anforderungen auftreten.

Diese Anwendung funktioniert die meiste Zeit sehr gut. Der Server bleibt monatelang auf. Von Zeit zu Zeit bekomme ich eine Ausnahme auf einem Client, und ich kann nicht herausfinden, was die Ausnahme verursacht. Die Ausnahme- und Stack-Ablaufverfolgung sind:

%Vor%

Das ist der Stack-Trace zurück zu dem, wo ich den Remoting-Aufruf mache.

Ich habe nachgeschaut und kann nichts Ungewöhnliches in den Anrufen finden, die ich mache, oder in den Daten, die der Server zurückgibt.

Google sucht nach diesem Fehler ist nicht sehr fruchtbar. Die meisten der Fehler, die ich gesehen habe, drehen sich darum, dass jemand von HTTP zu TCP konvertiert und nicht alles ändert. Daher erhalten sie die Ausnahme, wenn sie versuchen, eine Verbindung herzustellen. In meinem Fall wird der Client für Tage ausgeführt, bevor dieser Fehler auftritt.

Ein weiterer Datenpunkt: Der Server erhält viele Anfragen. Die meisten Clients sind Web-Crawler, die jede Minute mehr als 2.000 Anfragen an den Server senden. Der Server verarbeitet also mehr als 500 Anfragen pro Sekunde mit mehr Datenverkehr. In jedem Fall scheint der Server den Verkehr in Ordnung zu behandeln, und ich würde einen viel anderen Fehler erwarten, wenn der Server überlastet wird.

Irgendwelche Ideen, was diesen Fehler verursacht?

    
___ answer24956861 ___

Ich habe dieses Problem, wenn MS DNS-Server zu viele offene Port verwendet, so dass ausgehender Port nicht erstellt werden kann. Ja, es ist sehr lustig.

    
___ tag123entremoting ___ .NET Remoting ist eine ältere Technologie von .NET Framework für verteilte Anwendungen. Für die Entwicklung neuer verteilter Anwendungen wird empfohlen, Windows Communication Foundation (WCF) zu verwenden ___ answer3613673 ___

Dieser Fehler tritt normalerweise auf, wenn eine Nachricht mit falschen Headern empfangen wird. Sie können diesen Fehler beim Erstellen einer Telnet-Verbindung zu Ihrem Server wiederholen und etwas eingeben. In den meisten Fällen handelt es sich um einen Netzwerkfehler.

Ich empfehle dringend die Überprüfung Ihrer Firewall. Einige Firewalls löschen die Netzwerkpakete aufgrund eines falschen Angriffsalarms.

Load Balancing ist ein weiterer möglicher Grund. Load Balancer teilt Pakete auf verschiedene Server auf.

    
___
1
Antwort

Was passiert unter der Abdeckung, wenn Sie einen Stream von einem Remote-Objekt über .NET Remoting zurückgeben

Ich gebe Streams von einem Remote-Dienst ( .NET Remoting ) zurück. Aber wir sind auch Einwegartikel, die, wie wir alle wissen, entsorgt werden müssen. Ich könnte Streams auf der Client-Seite aufrufen, sobald ich diese verbraucht habe....
17.10.2012, 14:32
2
Antworten

Was verursacht "Tcp-Kanalprotokollverletzung erwartet Präambel" in .NET Remoting?

Ich habe eine verteilte Anwendung, die .NET Remoting in einem hausinternen Gigabit-Netzwerk verwendet. Es gibt einen einzelnen Server und über ein Dutzend Clients, die eine Verbindung zum Server herstellen. Die Clients führen mehrere Threads aus...
30.08.2010, 19:10