sql sunucusuna karşı sorgu çalıştırmak için wcf kullanırken garip bir hata oluştu


43

Windows Server 2003'te II6 kullanarak (vps barındırma) bir asp.net uygulaması yapıyorum. Geliştirme makinemde almadığım bir hatayla karşılaşıyorum (Windows 7, iis 7.5, 64 bit).

benim wcf hizmeti yerel sql server karşı çalışan benim sorgu bu hatadır başlatıyor çalışır

Aldığım:

Bellek kapıları kontrolü başarısız oldu boş bellek (43732992 bayt)% 5'ten az olduğu için Toplam hafızanın sonucu olarak, gelen talepler için hizmet olmayacaktır. Bu sorunu gidermek için yükünü makineye yükleyin veya minFreeMemoryPercentageToActivateService değerini serviceHostingEnvironment yapılandırma öğesinin değerine ayarlayın.

ve fikirler ??

13

Deneyin olabileceği bir şey, eğer değilse, 'mex' hizmet yolunu mutlak olarak değiştirmektir. Bir kez benim için çalıştı. Ancak bu, hizmetin yeniden başlatılması ve hafızanın boşaltılması nedeniyle olabilirdi.

BrainSlug en Cevap yapılandırmalarınızda, web.config içinde \ System.ServiceModel \ serviceHostingEnvironment elemanı bu


119

nasıl bir örnek vardır, bir minFreeMemoryPercentageToActivateService özniteliğini ekleyin ve 5'in altında bir şey olarak ayarlayın, ben benimkini 0'a ayarla ve bu hata benim için gitti.

örn:

<configuration> 
    <system.serviceModel> 
    <serviceHostingEnvironment ... minFreeMemoryPercentageToActivateService="0" /> 
    </system.serviceModel> 
</configuration> 

Dikkat MSDN aracılığıyla: "Servis çalıştırıldığında SecurityException sonuçlanacak bir WCF servisinin web.config dosyasında kısmi güven ile birlikte bu özelliği belirtme"

+3

@ BrianSlugs83 Teşekkürler - bu da benim için paylaşılan bir barındırma ortamında çalıştı. 30 ağu. 122012-08-30 16:44:04

+4

Bu yanıtta önerildiği gibi bunu% 0'a düşürmek güvenli midir? Varsayılanın% 5 olması için iyi bir neden var mı? 15 eki. 132013-10-15 21:11:16

  0

Bu iyi bir soru ve cevabını bildiğimi söyleyemem - ama ben, kısmi bir güven ortamında olmadığın sürece, neden olmayacağını bilmiyorum - - bir sayımda, garip bir böcek üzerinde çalışıyor - ve başka bir sayımda, sunucunuzun% 0 boş hafızası varsa, zaten çok daha fazla, daha kötü sorunlar yaşıyorsanız. : -/ 19 eki. 132013-10-19 06:31:10

  0

Ah heck. GoDaddy tarafından barındırılan WCF hizmetimde "Bellek kapıları" istisnası almaya başladım. Microsoft tarafından uyarıldığı gibi, "minFreeMemoryPercentageToActivateService" eklemeye çalışırsanız, "MinFreeMemoryPercentageToActivateService ayarı tam güven ayrıcalığı gerektirir" özel durumudur. Hizmetim öldü. 16 oca. 142014-01-16 11:48:09

+1

10 dakika sonra ... web.config dosyasını olduğu gibi (yani "minFreeMemoryPercentageToActivateService" ayarı olmadan) geri koyuyorum ve şimdi, sihirli bir şekilde tekrar çalışıyor. Gülünç. GoDaddy'den uzak durun ... 16 oca. 142014-01-16 11:52:28

+5

Sadece çalışıyor çünkü web.config'e her dokunduğunuzda, çalışan işleminizi sıfırlıyorsunuz, kullandığınız herhangi bir belleği bırakıyorsunuz. Bir çeşit hafıza sızıntınız var; web.config ile uğraşmak sorunu çözmeyecek. 07 şub. 142014-02-07 15:17:49

  0

Paylaşılan ana bilgisayar ortamı (mochahost) üzerinde çalışıyoruz teşekkürler! - webconfig'in nasıl olduğuyla ilgili olarak (freeMin $ isabeti olmaksızın) geri döndü ve işe yaraması için iyi bir çağrı! Alkış !!!! 03 mar. 142014-03-03 22:53:41

  0

@ JoãoBragança Bunun bana mı yoksa Mike'a mı yönlendirildiğinden emin değil. Ancak özel durumumda Visual Studio 2012 ve IISExpress ile geliştiriyordum ve sürekli olarak bu hatayı gördüm. Web servisimi geliştirmemi engelledi. Makineyi yeniden başlatma bile yardım etmedi. Bunu web.config sayfamda ayarlamak benim için sorunu çözdü. (Aklımda, 16 GB'lık bir makinem ve bu hatayı gördüğümde 8 GB'lık RAM'im var.) IIS Express'te bir hata olduğunu düşünüyorum. - GoDaddy için olduğu gibi, bir bellek sızıntısı olmayabilir, ancak bir Paylaşılan Barındırma sorunu olabilir. Her iki durumda, GoDaddy için, onu açık bırakırdım. 21 mar. 142014-03-21 02:28:42

  0

<serviceHostingEnvironment multipleSiteBindingsEnabled = "true" minFreeMemoryPercentageToActivateService = "0"> 28 ara. 172017-12-28 05:33:07


1

WCF hizmetimi yerel olarak (localhost) çalıştırırken bu sorunla karşılaştım. Servisi durdurdum. Koçumu temizlemek için birkaç uygulama kapalı. ve tekrar başlattı. Normal olarak daha erken başladı.
BrainSlug'un Cevabı da işe yaradı. Bunun için +1. :)
Şerefe!