Ben bir in-house gigabit ağ üzerinde .NET Remoting kullanan dağıtılmış uygulama var. Tek bir sunucu ve sunucuya bağlanan bir düzineden fazla müşteri var. İstemciler birden çok iş parçacığı çalıştırır ve her bir istemciden en fazla 10 eşzamanlı istek olabilir..NET Remoting'de "Giriş önbelleği beklemede Tcp kanal protokol ihlali" nedenleri nelerdir?
Bu uygulama çoğu zaman çok iyi çalışıyor. Sunucu her seferinde aylarca kalır. Zaman zaman bir müşteri üzerinde bir istisna alıyorum ve istisnaya neyin sebep olduğunu anlayamıyorum. istisna ve yığın izleme şunlardır:
Ben uzak arama yapmak yere geri yığın izleme varSystem.Runtime.Remoting.RemotingException: Tcp channel protocol violation: expecting preamble.
Server stack trace:
at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadAndMatchPreamble()
at System.Runtime.Remoting.Channels.Tcp.TcpSocketHandler.ReadVersionAndOperation(UInt16& operation)
at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.ReadHeaders()
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
.
Yaptığım aramalarda veya sunucunun döndürdüğü verilerde sıradan bir şey göremedim ve bulabildim.
Bu hatayı Google aramaları çok verimli değildir. Gördüğüm hataların çoğu, HTTP'den TCP'ye dönüştüren ve her şeyi değiştirmeyen bir kişinin etrafında dönüyor, böylece bağlantı kurmaya çalışırken istisna oluyorlar. Benim durumumda, istemci gün sürecek bu hatayı alıyorum önce.
Diğer bir veri noktası: sunucu çok sayıda istek alıyor. İstemcilerin çoğu, her dakika sunucuya 2.000'den fazla istek yapan Web tarayıcılarıdır. Bu nedenle sunucu, saniyede 500 istek, daha yüksek trafik patlamaları ile işliyor. Her durumda, sunucu trafiği hallediyor gibi görünüyor ve sunucu aşırı yüklendiğinde çok farklı bir hata bekliyordum.
bu hataya neyin neden herhangi bir fikir?
Kabul edilebilir kayıplar? P – leppie