Forum

C# el terminali bağ...
 
Bildirimler
Hepsini Temizle

C# el terminali bağlantı kontrol

6 Yazılar
2 Üyeler
0 Likes
1,127 Görüntüleme
(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Merhaba

El terminalinde her saniyede bir bağlantı olup olmadığını nasıl kontrol edebilirim?  Yani c#'ta yazılan bir wcf servis var. Bu servisle bağlantı yapamadığı zaman veya bağlantı koptuğu zaman ekranda anlık gösterebilimesi için nasıl kontrol edebilirim ?

Teşekkürler

 
Gönderildi : 11/07/2018 12:08

(@serkanates)
Gönderiler: 1271
Üye
 

Servise basit bir metot ekleyin. Talep geldiğinde true değeri dönsün örneğin. Bu servisi timer aracılığı ile istediğiniz aralıkta sorgulayın. Cevap gelmemesi veya timeout tarafını catch bloğunda yönetebilirsiniz. İyi çalışmalar.

 
Gönderildi : 11/07/2018 16:20

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Ben zaten bunu yapıyorum da cevap gelmemesi durumu 4 saniye veya bağlantı durumuna göre daha fazla olabiliyor. Benim istediğim her saniye veya 2 saniyede bir olması 

 

 
Gönderildi : 11/07/2018 18:14

(@serkanates)
Gönderiler: 1271
Üye
 

Özellikle mobil cihazlarda, kablosuz ağlarda belirttiğiniz beklemeler yaşanabilir. Gerek ortamdaki yansımalar ve gerekse AP noktasına olan mesafeniz, aradaki engeller buna sebep olabilir. Sisteminizi bu şekilde çalıştırdığınızda gereksiz bağlantı yok hataları alma ihtimaliniz mevcut. Tam olarak neden böyle bir şeye ihtiyacınız olduğunu belirtirseniz farklı bir çözüm üzerinde konuşabiliriz. Ancak yine de kısa süreli de olsa bağlantı kopmalarını denetlemek isterseniz ping paketlerini izleyebilirsiniz. Cihaz sürekli olarak belirttiğiniz sunucuya ping gönderir, cevap alamaz ise bağlantı hatası tespit edebilirsiniz.

https://www.c-sharpcorner.com/UploadFile/167ad2/how-to-use-ping-in-C-Sharp/

 

 
Gönderildi : 11/07/2018 21:35

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

El terminali için geliştirdiğim bir sayım veya sipariş alma gibi bir yazılım var. Veri tabanına veriyi göndermek istediğim zaman eğer bağlantı yok ise ( bunu bir değişkende tutup bakacam. Arka planda sürekli çalışan bir thread yazmıştım ama programda donmaya neden oldu el terminalinde. laptopda çalıştıdığım zaman sıkıntı olmuyor. ) kaydedilecek olan verileri başka bir yerde tutcam. Bağlantı olma durumunda göndermek istiyorum. Fakat bağlantı olmadığı zaman veya bağlantı koptuğu zaman veriyi göndermek istersem belli bir süre bekliyor. Bazen çok uzun sürüyor bu süre. Bende eğer bağlantı olmadığı zaman beklememek için başka yöntemler geliştirerek yazacam. Fakat bağlantı durumunu kontrol etmeyle ilgili bir thread yazdım. Bu threadde bazen 4 veya 7 saniyede bir cevap veriyordu. Bu durumu aşmak istiyorum.

 
Gönderildi : 12/07/2018 04:23

(@serkanates)
Gönderiler: 1271
Üye
 

sqlconnection nesnesinin open() metodu bağlantıyı açmaya çalışırken bir problemle karşılaşması durumunda sqlexception üretir. Eğer direkt Sql veritabanına kayıt atıyorsanız (arada bir web servis vb. yapı yoksa) bu nesneyi kullanabilirsiniz. Donma olarak tanımladığınız hadise, aslında sistemin cevap vermesini beklemesi ve cevap alamadığına karar verene kadar geçen sürede yaşanan durumdan kaynaklanmaktadır. Bu süreyi kısaltmak için SqlConnection.ConnectionTimeout inceleyebilirsiniz. Timeout değerini küçük bir değer atayarak yazılımın bağlantının durumu ile ilgili olarak daha hızlı karar vermesini sağlayabilirsiniz.

https://msdn.microsoft.com/tr-tr/library/system.data.sqlclient.sqlconnection.connectiontimeout(v=vs.110).aspx

 

 
Gönderildi : 12/07/2018 11:46

Paylaş: