Tôi cũng gặp lỗi tương tự, WCF đã hoạt động đúng với tôi khi tôi sử dụng nó trong Dev Môi trường với thông tin đăng nhập của tôi, nhưng khi có người khác sử dụng nó trong TEST, nó cũng bị lỗi tương tự. Tôi đã thực hiện rất nhiều nghiên cứu, và sau đó thay vì thực hiện cập nhật cấu hình, đã xử lý một ngoại lệ trong phương thức WCF với sự trợ giúp của ngoại lệ lỗi. Ngoài ra, danh tính cho WCF cần phải được đặt với cùng thông tin đăng nhập có cơ sở dữ liệu, ai đó có thể đã thay đổi thẩm quyền của bạn. Vui lòng tìm bên dưới mã cho cùng:
[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; }
}
trong dịch vụ của bạn1.svc.cs bạn có thể sử dụng điều này trong khối bắt:
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());
}
Và sử dụng điều này trong ứng dụng Client như mã dưới đây:
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();
}
Chỉ cần thử điều này, nó sẽ giúp chắc chắn để có được vấn đề chính xác.