আমিও একই ত্রুটি পাচ্ছিলাম, ডাব্লুসিএফ যখন আমার শংসাপত্রগুলি দিয়ে দেব পরিবেশে এটি ব্যবহার করছিল তখন আমার পক্ষে সঠিকভাবে কাজ করছিল, কিন্তু যখন অন্য কেউ টেস্টে এটি ব্যবহার করছিল তখন এটি একই ত্রুটিটি ছুঁড়ে মারছিল। আমি প্রচুর গবেষণা করেছি এবং তারপরে কনফিগার আপডেটগুলি না করে দোষের ব্যতিক্রমের সহায়তায় ডাব্লুসিএফ পদ্ধতিতে একটি ব্যতিক্রম পরিচালনা করেছি। এছাড়াও ডাব্লুসিএফের জন্য পরিচয়টি একই শংসাপত্রগুলির সাথে সেট করা দরকার যা ডাটাবেসে অ্যাক্সেস করে থাকে, কেউ আপনার কর্তৃত্ব পরিবর্তন করতে পারে। দয়া করে নীচের কোডটির জন্য এটি সন্ধান করুন:
[ServiceContract]
public interface IService1
{
[OperationContract]
[FaultContract(typeof(ServiceData))]
ForDataset GetCCDBdata();
[OperationContract]
[FaultContract(typeof(ServiceData))]
string GetCCDBdataasXMLstring();
//[OperationContract]
//string GetData(int value);
//[OperationContract]
//CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: Add your service operations here
}
[DataContract]
public class ServiceData
{
[DataMember]
public bool Result { get; set; }
[DataMember]
public string ErrorMessage { get; set; }
[DataMember]
public string ErrorDetails { get; set; }
}
আপনার service1.svc.cs এ আপনি এটি ক্যাচ ব্লকে ব্যবহার করতে পারেন:
catch (Exception ex)
{
myServiceData.Result = false;
myServiceData.ErrorMessage = "unforeseen error occured. Please try later.";
myServiceData.ErrorDetails = ex.ToString();
throw new FaultException<ServiceData>(myServiceData, ex.ToString());
}
এবং ক্লায়েন্ট অ্যাপ্লিকেশন এ নীচের কোড মত ব্যবহার করুন:
ConsoleApplicationWCFClient.CCDB_HIG_service.ForDataset ds = obj.GetCCDBdata();
string str = obj.GetCCDBdataasXMLstring();
}
catch (FaultException<ConsoleApplicationWCFClient.CCDB_HIG_service.ServiceData> Fex)
{
Console.WriteLine("ErrorMessage::" + Fex.Detail.ErrorMessage + Environment.NewLine);
Console.WriteLine("ErrorDetails::" + Environment.NewLine + Fex.Detail.ErrorDetails);
Console.ReadLine();
}
এটি চেষ্টা করুন, সঠিক সমস্যাটি পেতে এটি নিশ্চিতভাবে সহায়তা করবে।