যদি কোনও ডাব্লুসিএফ আরএসটি কলটিতে কোনও ভুল হয়ে যায়, যেমন অনুরোধকৃত উত্স পাওয়া যায় না, তবে আমি কীভাবে এইচটিটিপি রেসপন্স কোডটি খেলতে পারি (উদাহরণস্বরূপ HTTP 404 এর মতো কিছুতে সেট করে) আমার অপারেশনকন্ট্র্ট পদ্ধতিতে?
যদি কোনও ডাব্লুসিএফ আরএসটি কলটিতে কোনও ভুল হয়ে যায়, যেমন অনুরোধকৃত উত্স পাওয়া যায় না, তবে আমি কীভাবে এইচটিটিপি রেসপন্স কোডটি খেলতে পারি (উদাহরণস্বরূপ HTTP 404 এর মতো কিছুতে সেট করে) আমার অপারেশনকন্ট্র্ট পদ্ধতিতে?
উত্তর:
এমন একটি রয়েছে WebOperationContext
যা আপনি অ্যাক্সেস করতে পারেন এবং এটির মধ্যে এমন একটি OutgoingResponse
সম্পত্তি রয়েছে OutgoingWebResponseContext
যার মধ্যে একটি StatusCode
সম্পত্তি সেট করা যায়।
WebOperationContext ctx = WebOperationContext.Current;
ctx.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.OK;
WebFaultException
করা কাজ করে বলে মনে হচ্ছে।
যদি আপনাকে কোনও কারণে বডি ফেরত নিতে হয় তবে ওয়েবফল্টএক্সসেপশনটি একবার দেখুন
উদাহরণ স্বরূপ
throw new WebFaultException<string>("Bar wasn't Foo'd", HttpStatusCode.BadRequest );
WebFaultException
ফেরত দিতে নিক্ষেপ করবেন HttpStatusCode.Created
?
404 জন্যে রয়েছে উপর পদ্ধতিতে নির্মিত WebOperationContext.Current.OutgoingResponse নামক SetStatusAsNotFound (STRING বার্তা) যে 404 থেকে স্থিতি কোড এবং এক কলে একটি অবস্থা বর্ণনা সেট হবে।
এখানে নোট করুন, সেটস্ট্যাটাসএসক্রিয়েটেড (উরি অবস্থান) যা এক কল দিয়ে স্থিতি কোডটি 201 এবং অবস্থানের শিরোনামকে সেট করবে।
আপনি যদি শিরোনামে স্থিতির বিবরণটি দেখতে চান, তবে REST পদ্ধতিটি নীচের মত ক্যাচ () বিভাগ থেকে ফিরে আসা নিশ্চিত করবে:
catch (ArgumentException ex)
{
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.InternalServerError;
WebOperationContext.Current.OutgoingResponse.StatusDescription = ex.Message;
return null;
}
এছাড়াও আপনি সঙ্গে একটি statuscode এবং কারন শরীর আসতে পারেন WebOperationContext এর StatusCode এবং StatusDescription :
WebOperationContext context = WebOperationContext.Current;
context.OutgoingResponse.StatusCode = HttpStatusCode.OK;
context.OutgoingResponse.StatusDescription = "Your Message";
WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized;
throw new WebException("令牌码不正确", new InvalidTokenException());
রেফ: https://social.msdn.microsoft.com/ Forums/en-US/f6671de3-34ce-4b70-9a77-39ecf5d1b9c3/weboperationcontext-http-statuses- এবং- ব্যতিক্রম?forum= wcf
এটি ডাব্লুসিএফ ডেটা পরিষেবাদির জন্য আমার পক্ষে কাজ করে নি। পরিবর্তে, আপনি ডেটা পরিষেবাগুলির ক্ষেত্রে ডেটা সার্ভিস এক্সসেপশন ব্যবহার করতে পারেন। নিম্নলিখিত পোস্ট দরকারী হিসাবে পাওয়া গেছে। http://social.msdn.microsoft.com/forums/en/adodotnetdataservices/thread/f0cbab98-fcd7-4248-af81-5f74b019d8de