Я пытался создать протокол межсерверной связи с WCF.Но по какой-то причине, когда сервер отключается, вызываются события Failed и Closed.Это действительно раздражает, но я не нашел решения.
private static ServiceHost loginService;
static void Load() {
loginService = new ServiceHost(typeof(LoginService), new Uri[] { new Uri(Settings.Instance.LoginServiceURI) });
loginService.AddServiceEndpoint(typeof(ILoginService), ServiceHelpers.GetBinding(new Uri(Settings.Instance.LoginServiceURI)), Settings.Instance.LoginServiceURI);
loginService.Faulted += new EventHandler(loginService_Faulted);
loginService.Open();
}
static void loginService_Faulted(object sender, EventArgs e)
{
Log.WriteLine(LogLevel.Error, "LoginWCF Faulted. Restarting.");
loginService.Close();
Load();
}
Глупо то, что только функции внутри интерфейса ILoginService будут вызывать исключение, когда соединение разорвано.Я думал, что у TCP была своя поддержка?