私のサービスがうまくいかない理由を調べようと2日後に、私はついに原因を見つけました。新しいFaultException<AuthenticationException>
を投げようとするたびに、サーバーは実際にこれを投げつけるのではなく、それ自体をキャッチしています。WCFサービスが奇妙な例外を投げる
何が起こっているのですか?例外をスローすると、サーバは処理されていないSystem.ServiceModel.FaultException
にクラッシュしています。ここで
は私のカスタム例外クラスです:
[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"));
}
いつ例外を投げていますか?どのようにサーバーがクラッシュするのですか? – surfen
サーバが500の内部サーバエラーを返すことによってクラッシュしました。これは、上で説明したように未処理のSystem.ServiceModel.FaultException1'が見つかったためです。 – TheGateKeeper
あなたはどのようにサービスをホストしていますか? IIS? – surfen