मेरे पास एक ASP.NET अनुप्रयोग क्लाइंट सर्वर (W2k3, IIS6, .NET 2.0) पर चल रहा है। FWIW, यह एक परीक्षण उदाहरण है, इसे अभी तक उत्पादन में स्थानांतरित नहीं किया गया है। इसलिए यह एसएसएल, लोड बैलेंसिंग आदि के तहत नहीं चल रहा है।
जब हम हमारे कार्यालय से उनके सर्वर के किसी एक पेज को एक्सेस करते हैं, तो पेज एक बार हिट हो जाता है। IIS लॉग का निरीक्षण करना (c: WINDOWS \ system32 \ LogFiles \ W3SVC1) उस पृष्ठ के लिए एक GET दिखाते हैं, फिर मैं पृष्ठ पर एक बटन धक्का देता हूं और लॉग फ़ाइल एक POST दिखाती है। यह अब तक ठीक काम कर रहा है।
अब जब मैं क्लाइंट के नेटवर्क में रिमोट करता हूं और उनके किसी स्थानीय मशीन से पेज को एक्सेस करता हूं, तो लॉग फाइल एक जीईटी दिखाती है, फिर मैं पेज पर बटन दबाता हूं और लॉग एक ही सेकंड में दो POST दिखाता है । पहला वाला स्टेटस (sc-status, sc-substatus, sc-win32-status) 200 0 64 दिखाता है, दूसरा शो 200 0 0 दिखाता है।
लॉग फ़ाइल में, दोनों POST समान हैं। मूल रूप से लॉग इस तरह दिखता है (केवल कुछ आंकड़ों को छोड़कर)
# फ़ील्ड: दिनांक समय s-ip cs-method cs-uri-स्टेम सीएस-यूआरआई-क्वेरी s- पोर्ट सीएस-उपयोगकर्ता नाम c-ip cs (उपयोगकर्ता-एजेंट) sc- स्थिति sc-substatus sc-win32-status 2009-08-11 20:19:32 xxxx GET /File.aspx - 80 - yyyy मोज़िला / + (संगत; + MSIE + 8.0; + Windows + NT + 6.0; + WOW64; + त्रिशूल / 4.0; + SLCC1; + नेट + CLR + 2.0.50727;। + नेट + CLR + 3.5.21022;। + नेट + CLR + 3.5.30729;। + नेट + CLR + 3.0.30618; + MDDR; + OfficeLiveConnector.1.4; + OfficeLivePatch .0.0) 200 0 0 2009-08-11 20:19:45 xxxx POST /File.aspx - 80 - yyyy मोज़िला / + (संगत; + MSIE + 8.0; + Windows + NT + 6.0; + WOW64; + त्रिशूल / 4.0; + SLCC1; + नेट + CLR + 2.0.50727;। + नेट + CLR + 3.5.21022;। + नेट + CLR + 3.5.30729;। + नेट + CLR + 3.0.30618; + MDDR; + OfficeLiveConnector.1.4; + OfficeLivePatch .0.0) 200 0 64 2009-08-11 20:19:45 xxxx POST /File.aspx - 80 - yyyy मोज़िला / + (संगत; + MSIE + 8.0; + Windows + NT + 6.0; + WOW64; + त्रिशूल / 4.0; + SLCC1; + नेट + CLR + 2.0.50727;। + नेट + CLR + 3.5.21022;। + नेट + CLR + 3.5.30729;। + नेट + CLR + 3.0.30618; + MDDR; + OfficeLiveConnector.1.4; + OfficeLivePatch .0.0) 200 0 0
समस्या यह है कि पेज दो बार हिट हो रहा है। डेटाबेस पहले अनुरोध के लिए एक ऑपरेशन करता है, फिर दूसरा अनुरोध यह पता लगाता है कि एक डुप्लिकेट ऑपरेशन किया जा रहा है और एक त्रुटि संदेश फेंकता है। उपयोगकर्ताओं को लगता है कि उनका ऑपरेशन विफल हो गया, लेकिन यह वास्तव में सफल रहा।
Sc-win32-status 64 का त्रुटि विवरण है: "निर्दिष्ट नेटवर्क नाम अब उपलब्ध नहीं है।" यह मुझे विश्वास दिलाता है, यह देखते हुए कि दोनों POST अनुरोध 200 की HTTP स्थिति दिखाते हैं, कि सर्वर अनुरोध को पूरा करने में सफल है, लेकिन ग्राहक को कभी सूचित नहीं किया जाता है और अनुरोध को फिर से जारी करता है।
मैं इसका निवारण कैसे कर सकता हूं?
कोई भी विचार जो केवल उनके आंतरिक नेटवर्क पर इस व्यवहार का कारण हो सकता है?
मैं उल्लेख करना चाहिए, इस दो अलग-अलग ग्राहक स्थलों पर हो रहा है, लेकिन है नहीं हमारे अन्य ग्राहक साइटों की छह पर हो, या हमारे कार्यालय में, या वेब पर हमारे आठ ग्राहकों में से किसी को जोड़ने।
इस प्रजनन योग्य समय को उनके स्थानीय नेटवर्क पर 100% बना सकता है, लेकिन 0% समय कहीं और?
अपडेट: मैंने पाया कि बहुत कम संख्या में डुप्लिकेट किए गए POST अनुरोधों में 64 की बजाय 995 की sc-win32-status थी। Sc-win32-status = 995 का त्रुटि विवरण है: "I / O ऑपरेशन को थ्रेड निकास या अनुप्रयोग अनुरोध के कारण निरस्त कर दिया गया है।" इसका कोई मतलब नहीं है (यह मानते हुए कि मेरे पास कोड तक पूरी पहुंच है)। मुझे अभी भी समझ नहीं आया है कि यह समस्या कैसे या क्यों हो रही है, लेकिन नया त्रुटि कोड मुझे विश्वास दिलाता है कि यह सब के बाद एक नेटवर्क मुद्दा नहीं हो सकता है और मैं अब एक यादृच्छिक कोड बग की संभावना की जांच कर रहा हूं।