У меня есть длительный ответ 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 выполнить дополнительную работу для проверки?