2011-07-19 10 views
14

पर एमवीसी अनुप्रयोग होस्ट करते समय पूर्ण त्रुटि संदेश दिखाएं IIS 7.5 पर एक एमवीसी 3 एप्लिकेशन तैनात कर रहा हूं।IIS 7.5

कुछ त्रुटियां हैं जो केवल आईआईएस 7.5 पर होती हैं, और मैं उन्हें डीबग करने का प्रयास कर रहा हूं। हालांकि, जब भी कोई त्रुटि ट्रिगर होती है, तो डिफ़ॉल्ट त्रुटि.cshtml दिखाया जाता है।

  1. क्या विजुअल स्टूडियो 2010 में त्रुटियों को कैसे प्रबंधित किया जाता है, इस तरह विस्तृत त्रुटि संदेश दिखाना संभव है?

  2. OnHandleError विशेषता का उपयोग करते समय त्रुटि.cshtml पर अपवाद विवरण कैसे पास करूं?

उत्तर

30

आपका Error.cshtml दृश्य प्रकार HandleErrorInfo का एक मॉडल को स्वीकार करना चाहिए। आप Model.Exception संपत्ति से अपवाद विवरण प्राप्त कर सकते हैं।

उदाहरण के लिए, आपके विचार लग सकती है:

@model System.Web.Mvc.HandleErrorInfo 

@{ 
    ViewBag.Title = "Uh-oh, an error occurred/"; 
} 

<h2>One of us broke the site!</h2> 

@if (Model != null) 
{ 
    <h3>@Model.Exception.GetType().Name</h3> 
    <pre> 
     @Model.Exception.ToString() 
    </pre> 
    <p> 
     thrown in @Model.ControllerName @Model.ActionName 
    </p> 
} 
3

यदि यह डिबग प्रयोजनों आप अपने web.config में कस्टम त्रुटियों बंद कर देते हैं या दूरदराज ताकि आप विवरण जबकि डिबगिंग देख सकते हैं करने के लिए सेट कर सकते हैं के लिए है।

2

आप यह सुनिश्चित करने के लिए इसे चेक में भी लपेट सकते हैं कि डिबगिंग चालू है और हमेशा इसे HTML टिप्पणियों में प्रदर्शित करें (इसलिए यह साइट ब्राउज़ करने वाले किसी के लिए स्पष्ट रूप से दिखाई नहीं दे रहा है)। E.g

@if (System.Web.HttpContext.Current.IsDebuggingEnabled) 

{ 
    <!-- 
    <P>@Model.Exception.ToString()</P> 
    --> 
}