Если вы объявите привязку InThreadScope
, когда ожидаете, что ваши объекты будут жить в контексте HttpRequest, вы столкнетесь со многими проблемами:
- фантомных объектов : aпоток будет использоваться для обслуживания многих запросов. Некоторые объекты, которые были созданы, когда поток начал обслуживать свой первый запрос, будут снова и снова использоваться в контексте других запросов, где можно ожидать создания новых объектов
- утечка объектов : некоторые объекты, такие как SqlConnections, которые должны быть расположены в конце запроса, больше не будут удаляться до тех пор, пока поток не будет перезагружен, что не контролируется
- случайными переключателями контекста : async /Операции ожидания часто означают переключение потоков. Это приведет к неожиданному поведению, поскольку фабрики могут возвращать различные объекты до и после операции ожидания
Не следует использовать InThreadScope
в контексте запроса HttpRequest, так как вы не должны использовать ThreadStatic
атрибут в этом же контексте