Оказывается, что в WCF HttpConext имеет значение null, поскольку я основал разделение потоков на текущем HTTPContext (при условии, что он функционировал как обычное веб-приложение).
Увидел учебник по Как заставить NHibernate работать с WCF , который выглядел так, как будто он может работать, но имел проблемы с реализацией решения.Однако ДЕЙСТВИТЕЛЬНО кажется сложным использовать этот метод в сценарии для каждого запроса ... есть примерно 5 объектов, он требует изменения каждой из служб.
Обратите внимание, что если они работают только в среде HTTP, выможно использовать атрибут и раздел конфигурации AspNetCompatibilityRequirements, чтобы WCF имел значения HTTPContext.
Класс:
[System.ServiceModel.Activation.AspNetCompatibilityRequirements(RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Required)]
public class CaseService : ServiceBase, ICaseService
{
...
}
Web.config:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
...
</system.serviceModel>
Я где-то читал, чтоWCFSessionProvider (или что-то в этом роде) предоставляется в NHibernate 3.0, поэтому я подожду, пока это решение не станет реальным.