2013-04-20 5 views
20

को हल करने के लिए मेरे पास एक डब्ल्यूसीएफ सेवा होस्ट है। डब्ल्यूसी से मेरा अनुरोध उच्च है। मेरा मेजबान, समय की अवधि के बाद स्मृति की समस्या प्रदर्शित करता है। यह समस्या दोहराई गई है। जब मैं वेब सेवा मदद पृष्ठ खोलते हैं, तो यह त्रुटि दिखाया गया है:पूर्ण मेमोरी त्रुटि के साथ डब्ल्यूसीएफ सेवा (मेमोरी गेट्स की जांच विफल रही क्योंकि मुफ्त मेमोरी) -

मेमोरी फाटकों में विफल रहा है की जाँच क्योंकि मुक्त स्मृति (१३९८४९३१८४ बाइट्स) कुल स्मृति के 5% से कम है। नतीजतन, सेवा आने वाले अनुरोधों के लिए उपलब्ध नहीं होगी। इसे हल करने के लिए, मशीन पर लोड को कम करें या के मान समायोजित करें सेवाहोस्टिंगिंग पर्यावरण कॉन्फ़िगरेशन तत्व पर minFreeMemoryPercentageToActivateService।

<system.serviceModel> 
<behaviors> 
<serviceBehaviors> 
<behavior name=""> 
    <serviceMetadata httpGetEnable="true"/> 
    <serviceDebug includeExceptionDetailInFaults="false"/> 
    <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="1"/> 
</behavior> 
</serviceBehaviors> 

और मेजबान web.config

<system.serviceModel> 
<bindings> 
<basicHttpBinding> 
<binding name="BasicHttpBinding_IPaperService" clouseTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisojnMode="StringWildcard" maxBufferSize="1000000000" maxBufferPoolSize="1000000000" maxReceivedMessageSize="100000000" messageEncoding="text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> 
<readerQuotas maxDepth="32" maxStringContentLength="1000000000" maxArrayLength="1000000000" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
    <security mode="None"> 
    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/> 
    <message clientCredentialType="UserName" algorthmSuite="Default" /> 
    <security> 
</binding> 

मैं मेरी समस्या कैसे हल कर सकते हैं:

WCF मेजबान से मेरे web.config इस प्रकार है?

+2

भविष्य की पोस्ट में, कृपया स्क्रीनशॉट – Lemurr

+0

के रूप में डालने के बजाय कोड को कॉपी-पेस्ट करें बस ध्यान दें: 'serviceHostingEnvironment' तत्व को 'system.serviceModel' का बच्चा नहीं होना चाहिए 'व्यवहार' (उदाहरण के अनुसार थ्रेड @Andrea आपूर्ति की गई) रूट कारण को हल करने की सिफारिश के लिए – Radderz

उत्तर

16

बजाय WCF config मान बदलने में सुझाव दिया, WCF होस्ट के लिए yourweb.config में स्थापित करने की कोशिश करें, कोशिश पता करने के लिए जो की प्रक्रिया workingset स्मृति उच्च, कोशिश देखते हैं कि इसकी अगर वास्तव में

Powershellcommand>> get-process | Sort-Object WS -desc >c:\process.txt 

भी पता करने के लिए जो चाहे ProcessID आईआईएस अनुप्रयोग पूल की ओर इशारा करते है की आवश्यकता है

cmd.exe>> %systemroot%\system32\inetsrv\AppCmd.exe list wp 

शून्य config में अनुमति देकर, इस स्मृति उपलब्ध नहीं कारण के लिए सेवा के मई भ्रष्ट राज्य सक्रिय करने में सक्षम हो सकता है - कि प्रकृति :(

मेरे 2 सेंट में नहीं तो सीधे आगे हो सकता है ...

+2

+1। इसे या तो एक महंगी प्रक्रिया (शायद कुछ कोड में एक बग के कारण) या उपलब्ध संसाधनों को बढ़ाकर स्मृति पदचिह्न को कम करके हल किया जा सकता है। –

+0

'प्रक्रिया-प्रक्रिया' पावरहेल दृष्टिकोण के बाद, आप अधिक विस्तृत प्रक्रिया जानकारी (* विंडो शीर्षक, शीर्ष उपयोग, आदि *) की पहचान करने के लिए निम्न कथन का भी उपयोग कर सकते हैं ... 'get-process -name myprocess | चयन-ऑब्जेक्ट *> सी: \ processdetail.txt' – SliverNinja

+2

इसे शून्य पर सेट करने से कुछ भी भ्रष्ट नहीं होगा, यह% भौतिक स्मृति को संदर्भित करता है, पृष्ठ फ़ाइल नहीं। घने वातावरण में अपेक्षाकृत सामान्य शारीरिक स्मृति को अधिक प्रतिबद्ध किया गया है। यदि आपका सर्वर वर्चुअल मेमोरी से बाहर था (यानी पृष्ठ फ़ाइल पूर्ण) तो आपके पास ठीक से सक्रिय नहीं होने वाली सेवा की तुलना में आपके पास बड़ी समस्याएं होंगी। – Steven

2

वेब.कॉन्फिग बदलते समय स्थितियां एक विकल्प नहीं हैं। हमारे मामले में हमने सर्वर की मेमोरी को 8 जीबी से 16 जीबी तक बढ़ाकर हल किया।

1

मैं निर्धारित करने के लिए कि एसक्यूएल सर्वर लेने गया था मेरी उपलब्ध 32.

29 से अधिक gigs मेरी एमएस 2008 R2 वेब सर्वर पर संसाधन मॉनिटर इस्तेमाल किया एसक्यूएल करने के लिए आवंटित करने के लिए कितना स्मृति पर दूसरों के विचारों को पढ़ने मैं सेट करने के बाद 24 गीगा करने के लिए अधिकतम स्मृति। अधिकतम सर्वर मेमोरी सीमा आपके SQL सर्वर गुणों के मेमोरी टैब पर पाई जा सकती है।

1

यह समस्या तब होती है जब आपके सिस्टम की रैम 95% से अधिक के लिए कब्जा कर लिया गया है, कुछ अवांछित प्रक्रियाओं को रोकें और सेवा को फिर से आमंत्रित करने का प्रयास करें।

+0

हां। मैंने देखा कि यह अपवाद होने पर मेरा रैम उपयोग 16 जीबी का 9 4% है। मेरे मामले में मेरा आवेदन स्मृति लीक कर रहा है। –