У меня есть длительный ответ ASP (на самом деле действие MVC), который я хочу отменить, если пользователь ушел.Я думаю, что это должно быть довольно просто:
if(!this.Response.IsClientConnected)
{
Response.End();
}
Однако я сталкивался с различными источниками начиная с , что этот метод медленный .
Итак, я запустил свои собственные тесты (используя MVC мини-профилировщик , хотя вы могли бы использовать свои собственные):
using (var step = MiniProfiler.Current.Step("Response_IsClientConnected"))
if(!this.Response.IsClientConnected)
{
Response.End();
}
Это обнаружило, что каждый раз, когда я его называю, это всегда очень быстро: меньше 1 мсна моем разработчике.Это правда или ложь.
При каких обстоятельствах Response.IsClientConnected
может быть медленным?
Я должен поддерживать IIS6 - будет ли Response.IsClientConnected
медленнее?
Кто-нибудь знает, что он делает под одеялом?На низком уровне я ожидаю, что стек TCP / IP будет знать, все еще ли соединение установлено, поэтому я ожидаю, что эта проверка будет мгновенной, но нужно ли IIS выполнять дополнительную работу для проверки?