У меня есть приложение службы WCF, которое успешно запускалось в течение длительного времени.Приложение с именованными трубами, которое раньше работало, неожиданно завершилось с таймаутом
С тех пор как несколько дней все вызовы клиентов терпят неудачу с таймаутом. Я проверил, используя пошаговую отладку, и метод сервера никогда не работает, хотя соединение открыто на стороне клиента.
Частьсервер:
var host = new ServiceHost(typeof(Server.ClientSession));
host.AddServiceEndpoint(typeof(Contract.IEngine),
new NetNamedPipeBinding(NetNamedPipeSecurityMode.None)
{
HostNameComparisonMode = HostNameComparisonMode.Exact,
MaxReceivedMessageSize = 1000000
}, "net.pipe://Engine");
host.Open();
Клиентская часть:
engine = new EngineClient(
new NetNamedPipeBinding(NetNamedPipeSecurityMode.None)
{
HostNameComparisonMode = HostNameComparisonMode.Exact,
MaxReceivedMessageSize = 1000000
},
new EndpointAddress("net.pipe://Engine"));
engine.Actions.Subscribe(); // <= Fails with TIMEOUT
Где EngineClient
класс является оберткой ClientBase<>
:
public class EngineClient : ClientBase<IEngine>
{
public EngineClient(Binding binding, EndpointAddress address)
: base(binding, address)
{
}
public IEngine Actions
{
get
{
return Channel;
}
}
}
объяснил, это работало месяцами и внезапно разбилось на пару дней.