我以这种方式配置了我的WCF数据服务:
public static void InitializeService(DataServiceConfiguration config)
{
config.UseVerboseErrors = true;
在HandleException方法中,我设置了这个:
protected override void HandleException(HandleExceptionArgs args)
{
args.UseVerboseErrors = true;
我将此属性添加到我的服务类:
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class InformationService: DataService<InformationEntities>
在客户端(Android),我从服务器收到此消息:
An error occurred while processing this request.
详细例外情况在哪里?我还应该设置什么?
答案 0 :(得分:0)
您可以尝试在主机启动时将其添加到WCF服务代码中。它会导致异常详细信息包含在客户端引发和捕获的故障中。如果没有这个,隐藏异常的细节。
确保在捕获这些内部异常时,使用WCF System.ServiceModel.CommunicationObjectFaultedException对象向客户端抛出一个通用的“fault”对象。 Dot NET异常以Microsoft为中心,因此如果您向Android或iPhone等非MS设备抛出错误,则需要使用CommunicationObjectFaultedException。
ServiceDebugBehavior debug = ServiceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
if (debug == null) {
ServiceHost.Description.Behaviors.Add(new ServiceDebugBehavior { IncludeExceptionDetailInFaults = true });
} else {
if (!debug.IncludeExceptionDetailInFaults) {
debug.IncludeExceptionDetailInFaults = true;
}
}