Я хотел предложить здесь свои результаты, связанные с этим вопросом, как я наблюдал в IIS6:
Я занимаюсь этим вопросом активно в IIS6 и обнаружил некоторые интересные результаты, использующие log4net и отражение, чтобы захватить историю выполнения , Я обнаружил, что за кулисами происходит обширное «управление потоками». Кажется, что существует «первичная» серия потоков, которая соответствует 1: 1 - HttpApplication
. Однако эти потоки не предназначены исключительно для конвейера для вашего запроса. При обращении к этим экземплярам можно вызывать различные подтемы . Последующие новые запросы и запросы ресурсов, используемые вашим приложением, по-видимому, передают некоторую постоянную информацию, относящуюся к вашему первоначальному запросу, но все еще не полностью обрабатываются начальным потоком, указывающим на какой-то тип отношений. Я не мог различить какой-либо конкретный шаблон (кроме того, что я ранее описал) относительно того, какие элементы были разделены на другие потоки, поскольку это казалось случайным. Мой вывод к этим доказательствам заключается в том, что существует некоторая концепция иерархического объединения? где некоторое неизвестное подмножество ссылочных элементов наследуется в дочерних потоках через родительскую ссылку.
В качестве ответа я бы сказал, что HttpModules
являются разделяемые между потоками. Что касается значений блокировки экземпляра, это применимо, если значения применяются ко всем запросам, которые используют модуль, и должны поддерживать некоторое состояние. Я мог видеть, что это полезно, если вы пытаетесь сохранить значения экземпляров с сохранением состояния, которые стоят дорого, чтобы их можно было повторно использовать в последующих запросах.
Этот вопрос беспокоил меня в течение некоторого времени, надеюсь, эта информация помогает кому-то.
Да, он повторяет экземпляр среди множества различных запросов. Но вопрос в том, повторяет ли он экземпляр среди разных потоков. –
Из того, что я могу сказать: Да, но не в то же время. Кажется, что HttpApplication присваивается заданному запросу для продолжительности этого запроса. – sblom
Хорошо, спасибо. Я подожду, пока кто-то не узнает, что именно это подтвердит, так как я буду использовать этот код в рабочей среде, и мне будет сложно отлаживать. –