Ошибка: HttpContext.Current является нулевым.| PerWebRequestLifestyle |Замок Виндзор |Многопоточность - PullRequest
0 голосов
/ 19 марта 2019

У меня есть служба WCF, и внутри этой службы, используя MEF, я вызываю библиотеку классов времени выполнения.

Я реализовал DI (замок Виндзор) в этой библиотеке классов, и он работает нормально во всех запросах, но мгновенно через некоторое времяошибка возврата, как показано ниже

"HttpContext.Current имеет значение null. PerWebRequestLifestyle может использоваться только в ASP.Net"

Мы применили все интернет-решения, такие как установка Asp.netизменить жизненный цикл DI с LifestylePerWebRequest на scope , hibridgeLifeStyle и т. д. Но не найден правильный результат, ниже приведен мой код

enter image description here


enter image description here

Может ли одна просьба помочь мне решить эту проблему.Поскольку я новичок в DI, и это не проблема жизненного цикла, или проблема MEF, или проблема многопоточности, потому что я вызываю библиотеку этого класса в поток

Заранее спасибо

1 Ответ

0 голосов
/ 19 марта 2019

Чтобы получить доступ к HttpContext, вам нужно запустить WCF в режиме ASP.Net Compat. Не знаю, зачем вам это нужно, потому что тогда вы можете запускать сервисы WCF на IIS только в режиме сжатия asp.net, а не в другой среде хостинга, такой как служба Windows.

дополнительная информация здесь: https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/wcf-services-and-aspnet, которая также сообщает вам о контекстах, которые вы должны использовать вместо HttpContext

...