2010-05-21 42 views
43

我正在建立一個asp.net應用程序,在Windows Server 2003(vps hosting)上使用II6。 我遇到了我的開發機器上沒有收到的錯誤(Windows 7,iis 7.5,64位)。使用wcf對sql服務器運行查詢時發生奇怪的錯誤

當我的WCF服務試圖發動我的查詢針對本地的SQL服務器上運行,這是錯誤我收到:

內存門檢查失敗,因爲 可用內存(43732992個字節)小於5% 的總內存。作爲 結果,服務將不會是 可用於傳入的請求。若要解決此問題,請在機器上減少負載 或調整serviceHostingEnvironment 配置元素上的值minrreeMemoryPercentageToActivateService 。

和想法??

回答

13

您可以嘗試的一件事是將您的'mex'服務路徑更改爲絕對路徑,如果它尚未。它爲我工作過一次。但這可能是由於服務重新啓動並釋放了一些內存。

BrainSlug的回答有如何做到這一點

119

在你的web.config,在配置\ system.serviceModel \ serviceHostingEnvironment元素的例子,添加minFreeMemoryPercentageToActivateService屬性,並將其設置爲東西低於5,我將我的地雷設置爲0,這個錯誤對我來說就消失了。

例如:

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

注意通過MSDN:「指定在一個WCF服務的web.config文件將導致一個SecurityException運行服務時,部分信任沿着這個屬性。」

+3

@ BrianSlugs83謝謝 - 這也適用於我在共享主機環境。 – 2012-08-30 16:44:04

+4

按照此答案中的建議,將此降至0%是否安全?爲什麼默認值是5%有充分的理由嗎? – Matt 2013-10-15 21:11:16

+0

這是一個很好的問題,我不能說我知道答案 - 但我敢說,只要你不處於部分信任環境,我不明白爲什麼它不會 - - 在一次計數中,它圍繞着一個奇怪的錯誤發揮作用 - 另一方面,如果你的服務器有0%的空閒內存,那麼你已經有很多其他更糟糕的問題了。 : -/ – BrainSlugs83 2013-10-19 06:31:10

1

我在本地運行我的WCF服務時遇到了這個問題(localhost)。我停止了服務。關閉了幾個應用程序來清理我的內存。並重新啓動它。它像以前一樣正常開始。
BrainSlug的答案也有效。 +1。 :)
乾杯!