मैं किसी सेवा द्वारा प्राप्त HTTP अनुरोध को सत्यापित करने का प्रयास कर रहा हूं। मैं यह जांचना चाहता हूं कि सभी आवश्यक शीर्षलेख मौजूद हैं या नहीं। यदि नहीं, तो मैं एक अपवाद फेंकना चाहता हूं, जो किसी स्थान पर, उचित प्रतिक्रिया कोड और प्रतिक्रिया की स्थिति रेखा निर्धारित करेगा। मैं किसी भी विशिष्ट त्रुटि पृष्ठ पर उपयोगकर्ता को रीडायरेक्ट नहीं करना चाहता, बस जवाब भेजें।HTTP अनुरोधों को सत्यापित करने और Global.asax में विशिष्ट HTTP प्रतिक्रियाओं को वापस करने का एक उचित तरीका क्या है?
मुझे आश्चर्य है कि मुझे कोड कहां रखना चाहिए? मेरा पहला अनुमान Application_BeginRequest
में अनुरोधों को सत्यापित करना था, त्रुटि पर अपवाद फेंकना और Application_Error
में इसे संभालना था।
उदाहरण के लिए:
public void Application_BeginRequest(object sender, EventArgs e)
{
if(!getValidator.Validate(HttpContext.Current.Request))
{
throw new HttpException(486, "Something dark is coming");
}
}
public void Application_Error(object sender, EventArgs e)
{
HttpException ex = Server.GetLastError() as HttpException;
if (ex != null)
{
Context.Response.StatusCode = ex.ErrorCode;
Context.Response.Status = ex.Message;
}
}
जाहिर है, ऐसे मामलों में दृश्य स्टूडियो Application_BeginRequest
में एक बिना क्रिया का अपवाद के बारे में शिकायत। यह काम करता है, क्योंकि दिया गया कोड क्लाइंट को वापस कर दिया जाता है, लेकिन मुझे लगता है कि इस दृष्टिकोण के साथ कुछ गलत है।
[संपादित करें]: मैंने कस्टम स्थिति रेखा के बारे में दूसरा प्रश्न हटा दिया है, क्योंकि ये प्रश्न वास्तव में जुड़े नहीं हैं।
सहायता के लिए धन्यवाद।
डब्ल्यूसीएफ कहां खेलता है? क्या आप एक आरईएसटी सेवा बना रहे हैं जो आईआईएस में होस्ट किया गया है? –
ठीक है, हाँ। मेरा मानना है कि यह एक विकल्प है, एक प्रबंधित विंडोज सेवा/प्रबंधित ऐप (एमएसडीएन के अनुसार) के रूप में एक सेवा की मेजबानी करने का विरोध किया –