2015-03-01 1 views
0

Я пытаюсь использовать Httpcontext.Current для доступа к моему контексту owin в методе (который вызывается контроллером), это отлично работает при запуске сайт в IIS. Проблема возникает только тогда, когда я запускаю api как роль рабочего Azure. Даже если я добавлю контрольную точку в свой контроллер и попытаюсь получить HttpContext.Current, я все равно получаю null.HttpContext.Current является нулевым при вызове api при запуске в роли рабочего агента azure

Мой вопрос: есть ли что-то дополнительное, что нужно добавить при использовании лазурного? Или рабочие роли не поддерживают этот подход?

+0

Я сомневаюсь, что 'HttpContext.Current' работает, если сайт сам размещен. Вы действительно это подтвердили? –

+0

На самом деле нет. Я смутил этот апи с другой услугой. Я отредактирую свой вопрос. Вы думаете, почему он не работает? Поскольку запуск owin api в рабочей роли более или менее такой же, как при запуске, он запускается самостоятельно. – slinzerthegod

+1

Yeap, точно. Вы должны забыть о «HttpContext.Current» в приложениях с поддержкой OWIN. Тот факт, что он может работать в IIS, не означает, что вы должны использовать его, потому что вы убиваете все преимущества OWIN и связываете свой код с хостом ASP.NET. –

ответ

0

Я подозреваю, что роль рабочего Azure использует определенный хост OWIN, где HttpContext.Current недоступен. HttpContext.Current доступен только внутри хоста ASP.NET.