2012-04-20 12 views
35

मेरे सेटअप में मुझे अपने वेब एपीआई अनुरोध के साथ कुछ गलत होने पर त्रुटि 500 ​​मिलती है।एएसपीनेट वेब एपीआई गैर-वर्णनात्मक त्रुटि 500 ​​

उदाहरण के लिए इस सरल कोड के साथ।

public IQueryable<Article> Get(){ 
    throw new Exception("error"); 
    return db.Articles; //yeah i know.. unreachable, not the point 
} 

मैं क्या उम्मीद (और क्या एक नियमित रूप से MVC नियंत्रक में होता है):

enter image description here

क्या मैं (वेब ​​एपीआई में) मिलता है:

enter image description here मेरे वेब config:

<customErrors mode="Off"/> 
<compilation debug="true" targetFramework="4.5"> 

//under webserver 
<httpErrors errorMode="detailed"/> 

ऐप पीओ ओएल एकीकृत मोड में 4.0 चल रहा है। 32-बिट अनुप्रयोग सक्षम हैं।

ब्राउज़र में सतह को त्रुटि में कैसे प्राप्त किया जा सकता है? या कम से कम डीबगिंग के दौरान?

+0

मुझे वह स्क्रीन नहीं मिलती है। क्या आप .NET 4.5 का उपयोग कर रहे हैं? – Aliostad

+0

हां मैं 4.5 और ईएफ 5 प्रीरलीज का उपयोग कर रहा हूं। –

+11

मुख्य प्रश्न अंत में सही है: ब्राउज़र/क्लाइंट में त्रुटि सतह कैसे बनाएं? मैंने यह पाया: http://lostechies.com/jimmybogard/2012/04/18/custom-errors-and-error-detail-policy-in-asp-net-web-api/ आपको ग्लोबल कॉन्फ़िगरेशन करने की आवश्यकता है। कॉन्फ़िगरेशन शामिल करेंरर डालेंपोलिसी = IncludeDrrorDetailPolicy.Always; http://aspnetwebstack.codeplex.com/workitem/79 और WebApiContrib करने के लिए एक पैच क्या मेरी पोस्ट किया था करने के लिए: –

उत्तर

1

यदि यह एक डब्ल्यूसीएफ webservice है, तो आपको अपनी इच्छानुसार प्रकट होने के लिए त्रुटि के लिए ServiceBehavior विशेषता का IncludeExceptionDetailInFaults ध्वज चालू करना होगा।

+3

कोज़ नो-वन ने उन्हें 1 साल के बाद भी सही जवाब दिया ... आप भी नहीं। –

2

एक ही समस्या थी।

मेरे लिए

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 
WebApiConfig Register विधि में

जोड़ने में मदद की।

उसके बाद मुझे त्रुटि के बारे में अच्छी विस्तृत जानकारी मिली।

यहां कुछ और जानकारी MSDN

संबंधित मुद्दे