Собственный хост Autofac и веб-API

Я получаю сообщение об ошибке:

«Область времени жизни запроса не может быть создана, поскольку HttpContext недоступен».

если я попытаюсь настроить свой веб-API.

HttpContext недоступен в System.Web.Http.SelfHost, но есть ли альтернатива?

Пример с моим AuthenticationHandler:

    public class AuthenticationHandler : DelegatingHandler
    {
        private const string m_AuthenticationScheme = "Basic";
        protected override System.Threading.Tasks.Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
        {
            AuthenticationHeaderValue authenticationHeader = request.Headers.Authorization; //get the authorization header

            if (authenticationHeader != null && authenticationHeader.Scheme == m_AuthenticationScheme) 
            {
                Credentials credentials = authenticationHeader.ParseAuthenticationHeader();

                if (credentials != null)
                {   
                    IMyClass procadCredentials = DependencyResolver.Current.GetService<IMyClass>(); //thows the InvalidOperationException if I use self-hosting
//tried: "Autofac.Integration.Mvc.AutofacDependencyResolver.Current.RequestLifetimeScope.Resolve<IMyClass>();" too.

Я получил InvalidOperationException с сообщением:

Невозможно создать область времени жизни запроса, так как HttpContext недоступен.

IMyClass регистрируется в global.asax следующим образом:

m_builder.Register<IMyClass>((c, p) =>
            {
//...
//return ...
}

В то время как IIS-хостинг работает нормально, но при самостоятельном размещении IoC с AutoFac не работает.


person user437899    schedule 28.01.2013    source источник
comment
Пожалуйста, не могли бы вы предоставить больше кода?   -  person cuongle    schedule 28.01.2013
comment
Область действия.   -  person Steven    schedule 28.01.2013


Ответы (1)


Вы используете пакет интеграции Autofac MVC с веб-API, тогда как на самом деле вам следует использовать Autofac.WebApi http://nuget.org/packages/Autofac.WebApi

Подробнее об этом можно прочитать здесь — http://alexmg.com/post/2012/09/01/New-features-in-the-Autofac-MVC-4-and-Web-API-(Beta)-Integrations.aspx

person Filip W    schedule 28.01.2013
comment
Я использую оба. Но WebApi DependencyResolver тоже не работает - person user437899; 28.01.2013