के साथ वेब सेवाओं में अपवादों को संभालें क्या ईएमएमएएच का उपयोग करते हुए नियमित एएसपी.नेट वेब सेवा (एएसएमएक्स) में अपवादों को वैश्विक रूप से संभालने का कोई तरीका है जैसे हम इसे एएसपी.नेट वेबसाइट पर करते हैं?एल्मा
एल्मा
उत्तर
एएसपी.नेट वेब सेवाएं कभी भी Application_Error
घटना को आग नहीं देतीं और एएसपी.NET ऐप्स जैसे ELMAH द्वारा अपवादों को वैश्विक रूप से संभाला नहीं जा सकता है। लेकिन हम "मैन्युअल" अपवाद ELMAH का उपयोग कर लॉग ऑन कर सकते हैं:
public int WebServiceMethod() {
try {
...
}
catch (Exception ex) {
Elmah.ErrorLog.GetDefault(
HttpContext.Current).Log(new Elmah.Error(ex, HttpContext.Current));
}
}
आप एक SoapExtension उपयोग कर सकते हैं करने के लिए इस:
:using System;
using System.Web.Services.Protocols;
namespace MyNamespace
{
class ELMAHExtension : SoapExtension
{
public override object GetInitializer(Type serviceType)
{ return null; }
public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
{ return null; }
public override void Initialize(object initializer)
{ }
public override void ProcessMessage(SoapMessage message)
{
if (message.Stage == SoapMessageStage.AfterSerialize &&
message.Exception != null)
{
// Log exception here
}
}
}
}
आप निम्नलिखित लाइनों के साथ web.config में इस रजिस्टर
<system.web>
<webServices>
<soapExtensionTypes>
<add type="MyNamespace.ELMAHExtension, MyDLL" priority="1" group="1" />
</soapExtensionTypes>
</webServices>
</system.web>
यह आपको HttpContext और SoapMessage ऑब्जेक्ट तक पहुंच प्रदान करेगा जो आपको जो भी कहा जा रहा था, उसके बारे में आपको आवश्यक सभी विवरण देना चाहिए। मुझे लगता है कि इस चरण में आपके द्वारा प्राप्त अपवाद हमेशा एक साबुन अपवाद होगा और जिस चीज में आप रुचि रखते हैं वह शायद आंतरिक अपवाद है।
धन्यवाद, मैं इसे आज़माउंगा। –
हैवेन्ट को अभी तक यह करने का मौका मिला है, लेकिन यह _looks_ जैसा काम करना चाहिए। जहां यह कहता है 'कोड अपवाद यहां' कोड 'Elmah.ErrorLog.GetDefault ( HttpContext.Current) .ॉग (नया Elmah.Error (उदा, HttpContext.Current)); 'चाल चल सकता है। – codeulike
यह वास्तव में काम करता है। – avesse
आप इस कोड
try{
// your code in here
}
catch (Exception ert)
{
Elmah.ErrorSignal.FromCurrentContext().Raise(ert);
}
- 1. कस्टम एल्मा वाईएसओडी डेटा
- 2. एल्मा से ईमेल भेजें?
- 3. एल्मा मूल सेटअप प्रश्न/मुद्दे
- 4. एल्मा आईआईएस 7 सर्वर पर काम नहीं कर रहा है
- 5. एल्मा एमवीसी के साथ उत्पादन सर्वर पर/elmah तक नहीं पहुंच सकता है?
- 6. स्थानीय रूप से परीक्षण करते समय ईमेल भेजने वाले एल्मा को अक्षम कैसे करें?
- 7. मैं एल्मा की त्रुटि सिग्नल दिनचर्या का नकल कैसे कर सकता हूं?
- 8. क्या एल्मा में प्रोग्राम नाम निर्धारित करने का कोई तरीका है?
- 9. अनचाहे SQLite \ bin
- 10. कस्टम त्रुटियां सक्षम होने पर Elmah ट्रिगर नहीं कर रहा है
- 11. मैं स्थानीय अनुरोधों के लिए ईमेल हैंडलर का उपयोग करने से elmah को कैसे रोकूं?
- 12. एसक्यूएल सर्वर 2008
- 13. Elmah लॉग फ़ाइलों को हटाने, मैन्युअल रूप से या एक सेटिंग है?
- 14. एएसपी.NET वेबसाइट
- 15. पासवर्ड-सुरक्षा Elmah.axd फ़ाइल
- 16. एएसपी.नेट एमवीसी साइट
- 17. एएसपी.NET
- 18. वेब डिप्लॉयमेंट प्रोजेक्ट्स
- 19. एमवीसी 4 वेबएपीआई कॉन्फ़िगरेशन में किसी रूट को अनदेखा कैसे करें?
- 20. ईएलएमएएच जोड़ने और elmah.mvc.route बदलने के बाद पुराना मार्ग अभी भी उपलब्ध है
- 21. एल्माह ईमेल से 404 त्रुटियों को फ़िल्टर करते हैं लेकिन डेटाबेस
- 22. फॉर्म मान छुपाएं
- 23. टीम फाउंडेशन सर्वर 2010 और NuGet पैकेज फ़ोल्डर
- 24. डीबी में सभी त्रुटि कैसे लॉग इन करें लेकिन केवल सशर्त आधार पर ईमेल त्रुटियां?
- 25. दृश्य स्टूडियो को असेंबली संदर्भों को अपडेट करने से कैसे रोकें?
- 26. एमवीसी ऐप परिनियोजन; System.Data.SqlClient.SqlException: संग्रहीत प्रक्रिया 'ELMAH_GetErrorsXml'
- 27. एल्माह केवल 15 त्रुटियों को लॉग कर रहा है
- 28. एचटीपीपी कुकी सर्वर चर के संदर्भ में utmscr या utmcct मानों का क्या अर्थ है?
- 29. कस्टम अपवाद
- 30. एल्माह अवांछित 404 त्रुटियों की रिपोर्टिंग
मैं क्या सोचा था, लेकिन अगर वहाँ था "स्वच्छ" समाधान मैं जाँच की गई थी कि उपयोग कर सकते हैं। धन्यवाद –
हाँ, क्लीनर समाधान या अभ्यास भी मेरे लिए दिलचस्प होगा। और यह अच्छा सवाल है (+1)। –
मैंने अंततः आपके समाधान का उपयोग किया, मुझे इसे करने का बेहतर तरीका नहीं मिला। संकेत के लिए धन्यवाद। –