WCF服务抛出异常

本文关键字:抛出异常 服务 WCF | 更新日期: 2023-09-27 18:29:47

经过两天的努力,我终于找到了原因。每次我尝试抛出一个新的FaultException<AuthenticationException>时,服务器实际上并不是抛出这个,而是自己捕获它。

因此,当我抛出异常时,服务器会崩溃,并出现未处理的System.ServiceModel.FaultException 1`。

这是我的自定义异常类:

[DataContract]
public class AuthenticationException
{
    private string validationError;
    [DataMember]
    public string ValidationError
    {
        set { validationError = value; }
        get { return validationError; }
    }
    public AuthenticationException()
    {
    }
    public AuthenticationException(string valError)
    {
        validationError = valError;
    }
}

我的界面:

[ServiceContract]
public interface IAuthenticator
{
    [OperationContract]
    [FaultContract(typeof(AuthenticationException))]
    Account authenticateApplication(string userName, string Password);

是什么原因造成的?

编辑:这就是我抛出异常的方式:

            catch (Exception)
            {
                throw new FaultException<AuthenticationException>(new AuthenticationException("There was a general error during the process."), new FaultReason("Error"));
            }

WCF服务抛出异常

可能您的IIS服务器未配置为允许向客户端传递异常。

按照本帖的步骤2"为远程客户端启用详细错误"