6
Konsol uygulamasında barındırılan çok küçük bir wcf hizmetim var.WCF Service Memory Leaks
[ServiceContract]
public interface IService1
{
[OperationContract]
void DoService();
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]
public class Service1 : IService1
{
public void DoService()
{
}
}
ve
using (ServiceReference1.Service1Client client = new ServiceReference1.Service1Client())
{
client.DoService(new DoServiceRequest());
client.Close();
}
bu hizmet basicHttpBindings yayınlanmaktadır unutmayınız olarak varlık aradı. i 1000 döngüde istemci kodunun üzerinde yapıldığında Sorun
Şimdi ben "Tüm Öbek bayt" ve "özel bayt" performans sayaçları (i .net bellek profilcisini kullanılır) arasındaki büyük fark bulundu. Sorgulamadan sonra, nesnelerin bazılarının uygun şekilde atılmadığını buldum:
(bunların tümü için ad alanı System.ServiceModel'dir). Kanallar)
HttpOutput.ListenerResponseHttpOutput.ListenerResponseOutputStream
BodyWriterMessage
BufferedMessage
HttpRequestContext.ListenerHttpContext.ListenerContextHttpInput.ListenerContextInputStream
HttpRequestContext.ListenerHttpContext
Sorular Neden gönülsüz nesneler ve bunların nasıl kontrol etmek sürü var.
Arama başına yeni bir örneğini istemenizin
Bana bir sistem kitaplığı sızıntısı gibi görünüyor. İstemci (kullanıcı yazılı servisinde olduğu gibi) kodu, bu arabelleklere ve akışlara dokunmaz ve WCF onları tasfiye etmiyor gibi görünür. –
Mabushar: Bununla bir şansın oldu mu? Benzer bir sorun yaşıyorum. – bugfixr
Bugfixr özür dilerim kardeşim Bugün mesajınızı farkettim, onlardan kurtulabildiğimi hatırlamıyorum ama hatırladığım tek şey çerçeve 3.5'den framework 4.0'a geçtim, kısmen veya tamamen yardımcı olmadı Unutma ama bir şekilde bana yardımcı oldu. geç cevap için özür dilerim. –